目录
A1. Combination Lock
A2. Summer Camp
rzt A3. Soft Drinking
★A4. Coder
★A5. GukiZ and Contest
★A6. Circle Line
rzt A7. Patrick and Shopping
A8. Choosing Teams
A9. Vanya and Cubes
A10. Insomnia cure
★A11. Cakeminator
★A12. Flag
A1. Combination Lock
https://codeforces.com/contest/540/problem/A?f0a28=1
题意:
转锁 第一行给出密码位数
第二行输入初始密码
第三行输入转完的密码
输出最小转动总数
这题跟之前刷的一道有点像 就是min(顺时针,逆时针)
#include#include using namespace std; int main() { int n,res=0,t; string a,b; cin>>n>>a>>b; for(int i=0;i A2. Summer Camp
https://codeforces.com/contest/672/problem/A
题意:
纯纯的打表题 可以先用for循环输出打表内容然后复制
#include#include using namespace std; int main() { int n; string s="123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460"; cin>>n; cout< rzt A3. Soft Drinking
https://codeforces.com/contest/151/problem/A
#includeusing namespace std; int main() { int n,k,l,c,d,p,nl,np; cin>>n>>k>>l>>c>>d>>p>>nl>>np; cout< ★A4. Coder
https://codeforces.com/contest/384/problem/A
题意:
找规律的好题 要使每个棋子互相不攻击到 只要放对角线就行
发现无论n是奇数还是偶数 最多棋子数都满足(n*n+1) / 2
画个图发现 当行列的奇偶性不同时放入点 奇偶性相同时放入C
#includeusing namespace std; int main() { int n; cin>>n; cout<<(n*n+1)/2< ★A5. GukiZ and Contest
https://codeforces.com/contest/551/problem/A
题意:
思路:贪心
每名选手的排名应该是1+G 而G表示rating 严格比这名选手大的选手数量
那么就很好想了
#includeusing namespace std; int main() { int n,a[2001]; cin>>n; for(int i=0;i >a[i]; for(int i=0;i a[i]) G++; cout< ★A6. Circle Line
https://codeforces.com/contest/278/problem/A
题意:这题没依赖题解 自己做的嘿嘿
min(顺时针,逆时针)大法好 其余的就是画图找规律
分 s
t 两种情况 #includeusing namespace std; int main() { int n,s,t,a[101],sum=0,s1=0; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; sum+=a[i]; } cin>>s>>t; if(s>t) for(int i=t;i<=s-1;i++) s1+=a[i]; else for(int i=s;i<=t-1;i++) s1+=a[i]; cout< rzt A7. Patrick and Shopping
https://codeforces.com/contest/599/problem/A
题意:
平面上有三个点A,B,C
给出AB=d1,AC=d2,BC=d3
求从A出发,经过B和C再回到A的最短路径长度(可重复经过点、边)
直接列出四种情况 然后比较谁最小
#includeusing namespace std; int main() { int d1,d2,d3,da,db,dc,dd; cin>>d1>>d2>>d3; da=(d1+d2)*2; db=d1+d2+d3; dc=(d2+d3)*2; dd=(d1+d3)*2; cout< A8. Choosing Teams
https://codeforces.com/contest/432/problem/A
题意:
总共有n个人,每个人最多参加5场比赛,现在给出每个人已经参加过的比赛次数,要组尽可能多的队伍去继续参加比赛,每支队伍3个人,要求组成的队伍至少再参加k场比赛,问最多可以组几个队
#include#include using namespace std; int main() { int n,k,a[2001],cnt=0; cin>>n>>k; for(int i=0;i >a[i]; sort(a,a+n); if(a[2]+k>5) cout<<0; else { for(int i=2;i A9. Vanya and Cubes
https://codeforces.com/contest/492/problem/A
题意:
#includeusing namespace std; int main() { int i,j,n,sum=0,s=0; cin>>n; for(i=1;n>=sum;i++) { s=0; for(j=1;j<=i;j++) s+=j; sum+=s; } cout< A10. Insomnia cure
https://codeforces.com/contest/148/problem/A
题意:
如果是k l m n 的倍数那就会被公主伤害
#includeusing namespace std; int main() { int k,l,m,n,d,res=0; cin>>k>>l>>m>>n>>d; for(int i=1;i<=d;i++) if(i%k==0||i%l==0||i%m==0||i%n==0) res++; cout< ★A11. Cakeminator
Problem - A - Codeforces
题意:
怪物不能吃 行和列都同时存在草莓 的蛋糕块 问最后怪物能吃几块蛋糕?
思路一: 标记法——反向操作
如果有草莓 则该行该列都打上标记 说明不能走
此时再来个循环 判断只要 行能走 或 列能走 的 cnt++
我的思路跟这个方法差不多 但我没有做到实现 还是要多学习
#includeusing namespace std; int main() { int r,c,cnt=0,i,j,b[11]={0},d[11]={0}; cin>>r>>c; char ch; for(i=0;i >ch; if(ch=='S') //如果有草莓 记录行和列 1表示不能走 { b[i]=1; d[j]=1; } } for(i=0;i 思路二: 容斥原理——正向操作
用a记录能吃的行数 用b记录能吃的列数
运用容斥原理 AUB = A+B - A∩B
#includeusing namespace std; const int N = 20; int r[N],c[N],n,m,a,b; char s[N][N]; int main() { cin>>m>>n; for (int i=1;i<=m;i++) r[i]=1; for (int i=1;i<=n;i++) c[i]=1; for (int i=1;i<=m;i++) for (int j=1;j<=n;j++) { cin>>s[i][j]; if(s[i][j]=='S') r[i]=c[j]=0; } for (int i=1;i<=m;i++) a+=r[i]; //记录能吃蛋糕的行数 for (int i=1;i<=n;i++) b+=c[i]; //记录能吃蛋糕的列数 cout<
★A12. Flag
Problem - A - Codeforces
题意:
#includeusing namespace std; int main() { int n,m,now,last=15,a[101][101]; cin>>n>>m; for(int i=0;i >a[i][j]; for(int i=0;i



