比赛链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82934#problem/A
总结:
1,字符串的读入,gets,fgets函数掌握
2,字符串相关函数strcmp,strcpy
3,位运算
r &= ~(1<<n)将第n位变为0
r |= 1<<n将第n位变1
A:
#include <cstring> #include <cstdio> #include <algorithm> #include <iostream> using namespace std; char start[10]; char ed[10]; char END[20]; char ch[2000000]; int main(void){ //freopen("in.txt","r",stdin); while(scanf("%s",start)&&!strcmp(start,"START")){ getchar(); int a=0; while((ch[a]=getchar())!='\n')a++; ch[a]='\0'; scanf("%s",ed); int cnt = 0; for(int i = 0;i<a;i++){ if(ch[i]<='Z' && ch[i]>='A') { if(ch[i]-5<'A')ch[i]='Z'-(5-(ch[i]-'A'))+1; else ch[i]=ch[i]-5; } } printf("%s\n",ch); } }
#include <cstdio> #include <iostream> #include <algorithm> #include <queue> using namespace std; int mp[6][6]; int vis[6][6]; int x[4]={1,-1,0,0},y[4]={0,0,-1,1}; struct node{ int x; int y; }q; void dfs(int a, int b){ int flag = 0; if(a == 1 && b == 1)flag = 1; else { for(int i = 0;i<4;i++){ if(a+x[i]>=1 && a+x[i]<=5 && b+y[i]<=5 && b+y[i]>=1 && vis[a+x[i]][b+y[i]]==vis[a][b]-1 && mp[a+x[i]][b+y[i]]==0) dfs(a+x[i],b+y[i]),cout << '(' << a+x[i]-1<<','<<' '<<b+y[i]-1<<')'<<'\n'; } } } queue<node> Q; int main(void){ //freopen("in.txt","r",stdin); for(int i = 1;i<=5;i++) for(int j = 1;j <=5;j++)scanf("%d",&mp[i][j]); q.x = 1, q.y = 1; Q.push(q); while(!Q.empty()){ q=Q.front(); int a = q.x, b = q.y; Q.pop(); for(int i = 0;i<4;i++){ if(a+x[i]>=1 && a+x[i]<=5 && b+y[i]<=5 && b+y[i]>=1 &&!vis[a+x[i]][b+y[i]] && mp[a+x[i]][b+y[i]]==0){ vis[a+x[i]][b+y[i]] = vis[a][b]+1; q.x = a+x[i],q.y = b+y[i]; Q.push(q); } } } cout << "(0, 0)\n"; dfs(5,5); cout << "(4, 4)\n"; }
#include <cstring> #include <algorithm> #include <cstdio> #include <iostream> using namespace std; char ch[66][20]; int vis[66]; int n; int ju(){ for(int i =0;i<n;i++)if(!vis[i])return 0; return 1; } int main(void){ //freopen("in.txt","r",stdin); cin>>n; for(int i = 0;i<n;i++)scanf("%s",ch[i]); int w,s;scanf("%d,%d",&w,&s); memset(vis,0,sizeof vis); int be = w-1; int cnt; while(!ju()){ cnt = 0; be%=n; while(cnt<s){ while(vis[be])be++,be%=n; cnt++; be++; be%=n; } if(be>=1)vis[be-1]=1,printf("%s\n",ch[be-1]); else vis[n-1]=1,printf("%s\n",ch[n-1]);; } }
#include <cstring> #include <cstdio> #include <algorithm> #include <iostream> using namespace std; char ch[2000]; int main(void){ //freopen("in.txt","r",stdin); while((ch[0]=getchar()) != EOF){ int a = 1; for(int i =1;i<2000;i++)ch[i]='0'; while((ch[a]= getchar())!='\n')a++; ch[a]='\0'; for(int i = 0; i<a;i++){ if(i+2 < a && ch[i]=='y' && ch[i+1]=='o' && ch[i+2]=='u')ch[i]='w',ch[i+1]='e',ch[i+2]=' ',i+=2; } for(int i = 0;i<a;i++){ if(i+1<a && ch[i]==' ' && ch[i+1]==' ')putchar(' '),i++; else putchar(ch[i]); } putchar('\n'); } }
#include <algorithm> #include <cstdio> #include <iostream> #include <cmath> using namespace std; int main(void){ char a[7]; while(scanf("%s",a)!=EOF){ int x = a[2]-'0'; int y = a[6]-'0'; int m = x*y; int n; if(a[3]=='-')n = y*(a[0]-'0')-x*(a[4]-'0'); else n = y*(a[0]-'0')+x*(a[4]-'0'); int cnt = 1; for(int i = 1;i<=fabs(n*m);i++)if((n%i==0||(n*-1)%i==0) && (m%i==0 || (m*-1)%i==0))cnt = i; n/=cnt; m/=cnt; if(n!=0 && n%m!=0)cout << n << '/' << m; else cout << n/m; putchar('\n'); } }
#include <iostream> #include <cstdio> using namespace std; int r,x,y; void set(int n){ r &= ~(1<<n); } void bit(int n){ r |= 1<<n; } int main(void){ //freopen("in.txt","r",stdin); scanf("%x,%d,%d",&r,&x,&y); bit(y); bit(y-1); set(y-2); set(x); printf("%x",r); }
#include <cstdio> #include <algorithm> #include <cstring> #include <iostream> using namespace std; int ch[110][2000]; int main(void){ //freopen("in.txt","r",stdin); int a,b,c; while(scanf("%d%d%d",&a,&b,&c)!=EOF){ memset(ch,0,sizeof ch); int t = 1; while(a)ch[1][t]=a%10,a/=10,t++; t = 1; while(b)ch[2][t]=b%10,b/=10,t++; t = 1; while(c)ch[3][t]=c%10,c/=10,t++; for(int i = 4;i<=100;i++){ for(int j =1;j<=1999;j++){ int s =0; s+= ch[i-3][j]+ch[i-2][j]+ch[i-1][j]+ch[i][j]; ch[i][j]=s%10; ch[i][j+1]=s/10; } } int cnt = 1; for(int i = 1999;i>=1;i--){ if(ch[100][i]!=0){cnt = i;break;} } for(int i = cnt;i>=1;i--) cout << ch[100][i]; putchar('\n'); } }