网站风险怎么解决方案,两当网站建设,网站空间可以自己买吗,软文小故事200字A - Leap Year#xff08;模拟#xff09;
题意#xff1a;给定一个数字n#xff0c;如果n不是4的倍数#xff0c;输出365#xff1b;如果n是4的倍数但不是100的倍数#xff0c;输出366#xff1b;如果n是100的倍数但不是400的倍数#xff0c;输出365#xff1b;如果…A - Leap Year模拟
题意给定一个数字n如果n不是4的倍数输出365如果n是4的倍数但不是100的倍数输出366如果n是100的倍数但不是400的倍数输出365如果n是400的倍数输出366
分析模拟题目即可
代码
#includebits/stdc.h
using namespace std;
int main(){int n;cinn;if(n%4!0){cout365endl;}else if(n%40n%100!0){cout366endl;}else if(n%1000n%400!0){cout365endl;}else cout366endl;
}
B - Second Best排序
题意给定一组数组求第二大元素的下标
分析用结构体然后进行排序输出下标即可
代码
#includebits/stdc.h
using namespace std;
struct A{int x,y;
}a[110];
bool cmp(A q,A w){return q.xw.x;
}
int main(){int n;cinn;for(int i1;in;i){cina[i].x;a[i].yi;}sort(a1,an1,cmp);couta[2].yendl;return 0;
}
C - Transportation Expenses二分
题意给定一个长度为n的数组a找到最大的x满足min(a1,x)min(a2,x).......min(an,x)m
分析用二分找出最大值满足要求
代码
#includebits/stdc.h
using namespace std;
typedef long long ll;
const int N2e510;
ll a[N];ll n,m;
ll f(ll x){ll sum0;for(int i1;in;i){summin(a[i],x);}return sum;
}
int main(){cinnm;for(int i1;in;i)cina[i];ll l1,rm1;while(lr){ll mid(lr1)/2;if(f(mid)m)lmid;else rmid-1;//coutr;}if(lm1)coutinfiniteendl;else coutlendl;return 0;
}
D - AtCoder Janken 3dp
题意给定一个字符串s为青木出的的动作。r为石头p为布s为剪刀。高桥每次只能出与上一局不同的动作且不能输给青木。求高桥最大获胜对局数。
分析将r表示为0p表示为1s表示为2用数组a替换字符串sdpimax(dpi-1dpi-1)如果j赢ai则dpi1。
代码
#includebits/stdc.h
using namespace std;
typedef long long ll;
const int N2e510;
int a[N],n;
int dp[N][4];
int ans0;
int main(){cinn;string s;cins;memset(dp,0,sizeof(dp));for(int i1;in;i){if(s[i-1]R)a[i]0;if(s[i-1]P)a[i]1;if(s[i-1]S)a[i]2;}for(int i1;in;i){for(int j0;j2;j){if(a[i]0){if(j0){dp[i][j]max(dp[i-1][1],dp[i-1][2]);}else if(j1){dp[i][j]max(dp[i-1][2],dp[i-1][0])1;}}else if(a[i]1){if(j2){dp[i][j]max(dp[i-1][1],dp[i-1][0])1;}else if(j1){dp[i][j]max(dp[i-1][2],dp[i-1][0]);}}else if(a[i]2){if(j0){dp[i][j]max(dp[i-1][1],dp[i-1][2])1;}else if(j2){dp[i][j]max(dp[i-1][1],dp[i-1][0]);}}}}for(int i0;i2;i)ansmax(ans,dp[n][i]);coutansendl;return 0;
}