题目描述
输入描述
输出描述
输入样例
3 2 3 6 3 1 3 5 5 1 2 5 6 7
输出描述
1 1 3 3 2 3
数据范围极小的普通签到题,通过距离是否大于 2 分为多个连通块(?),并统计每个连通块中的人数并更新答案即可。
参考代码
#includeusing namespace std; int a[10],d[10]; int main(){ int t,n; cin >> t; while(t--){ cin>>n; cin>>a[0]; for(int i=1;i >a[i]; d[i-1]=a[i]-a[i-1]; } int resMax=-1,resMin=8,cnt=0; for(int i=0;i D-阿强与网格 题目描述
输入描述
输出描述
输入样例
3 5 6 2 5 4 7 5 6 7 8 6 5输出样例
18 33 36
贪心,每进行一次对角线方向的走法其实等价于两次直线方向走法,比较两种方法的价格,同时需要特判网格的特殊形状。
本题卡快读(可恶),考虑由 scanf 读入。
参考代码
#includeE-生活大爆炸using namespace std; typedef long long ll; signed main(){ int t;scanf("%d",&t); ll n,m,x,y;ll ans; while(t--){ scanf("%lld%lld%lld%lld",&n,&m,&x,&y); if(m>n)swap(n,m); if(m==1){ ans=(n-1ll)*x; }else if(2ll*x<=y){ ans=(n+m-2ll)*x; }else if(x<=y){ ans=(n-m)*x+(m-1ll)*y; }else if((n-m)&1){ ans=(n-2ll)*y+x; }else{ ans=(n-1ll)*y; } printf("%lldn",ans); } return 0; } 题目描述
输入描述
输出描述
输入样例
5 2 5输出样例
10
数学组合问题,
毕竟高中都学过手模一下就好了嘛,注意处理相同方案多次计算的问题。#includeF-Capslocktypedef long long ll; using namespace std; ll C[65][65]; int main(){ int n,m,t; for(int i = 0;i <= 65;i++) for(int j = 0;j <= i;j++){ if(!j) C[i][j] = 1; else C[i][j] = C[i - 1][j - 1] + C[i - 1][j]; } cin >> n >> m >> t; ll ans = 0; for(int i = 4;i <= n;i++) for(int j = 1;j <=m;j++) if(i + j == t) ans += C[n][i] * C[m][j]; cout << ans << endl; return 0; } 题目描述
输入描述
输出描述
输入样例1
cAPS输出样例1
Caps输入样例2
Lap输出样例2
Lap
对各种情况模拟即可,注意 asc 码中大写字母在小写字母之前。
参考代码
#includeusing namespace std; int main(){ int flag=0; string s; cin>>s; for(int i=1;i 'Z') flag=1; if(flag==0){ if(s[0]>'Z') s[0]-='a'-'A'; else s[0]+='a'-'A'; for(int i=1;i G-字节类型 题目描述
输入描述
输出描述
输入样例1
127输出样例1
byte输入样例2
123456789101112131415161718192021222324输出样例2
BigInteger
由于都是正整数,因此比较大小即可。考虑用 __int128 进行转换,在 __int128 范围内且大于 long long 范围的则输出 BigInteger,否则逐级比较。
为了避免麻烦,长度大于 20 的直接输出即可。
参考代码
#includeL-神奇的回答using namespace std; string a; __int128 x=0; int main() { cin>>a; int len=a.size(); if(len>=20){ printf("BigIntegern"); return 0; } for(int i=0;i 9223372036854775807)printf("BigIntegern"); else if(x>147483647)printf("longn"); else if(x>32767)printf("intn"); else if(x>127)printf("shortn"); else printf("byten"); return 0; } 题目描述
输入描述
输出描述
输入样例
4 19 14 4 122输出样例
18 14 4 18
不会吧?这题都要讲吗?人人都会的代码
#includeusing namespace std; int main(){ int n; cin>>n; while(n--){ int x; cin>>x; if(x>=18) cout<<18<



