91 solutions
-
0
#include<bits/stdc++.h> using namespace std; int st[30]; const int N=110; char str[N]; int main() { for(int i=0;i<4;i++) { cin.getline(str,N); int n=strlen(str); for(int j=0;j<n;j++) { if(str[j]>='A'&&str[j]<='Z') { int t=str[j]-'A'; st[t]++; } } } int maxv=0; for(int i=0;i<26;i++) { maxv=max(maxv,st[i]); } for(int i=maxv;i>=1;i--) { for(int j=0;j<26;j++) { if(st[j]>=i) cout<<"* "; else cout<<" "; } cout<<endl; } for(int i=0;i<26;i++) cout<<char('A'+i)<<" "; return 0; }
-
-1
#include<bits/stdc++.h> using namespace std; int st[30]; const int N=110; char str[N]; int main() { for(int i=0;i<4;i++) { cin.getline(str,N); int n=strlen(str); for(int j=0;j<n;j++) { if(str[j]>='A'&&str[j]<='Z') { int t=str[j]-'A'; st[t]++; } } } int maxv=0; for(int i=0;i<26;i++) { maxv=max(maxv,st[i]); } for(int i=maxv;i>=1;i--) { for(int j=0;j<26;j++) { if(st[j]>=i) cout<<"* "; else cout<<" "; } cout<<endl; } for(int i=0;i<26;i++) cout<<char('A'+i)<<" "; return 0; }
-
-4
#include<bits/stdc++.h> using namespace std; int a[]={72,101,108,108,111,44,87,111,114,108,100,33}; int b[15]; int c[100]; int d[100]; int e[100]; int f[100]; int g[100]; int h[100]; int I[100]; int j[100]; int k[100]; int l[100]; int m[100]; int n[100]; int o[100]; int p[100]; int q[100]; int r[100]; int s[100]; int t[100]; int u[100]; int v[100]; int w[100]; int x[100]; int y[100]; int z[100]; void initArrays(); void copyArray(int src[], int dest[], int size); void printArrayAsChars(int arr[], int size); void doNothing(); void complicatedLoop(int arr[], int size); void superComplicatedLogic(int arr1[], int arr2[], int size); void mysteryFunction(int arr[], int size); void anotherMysteryFunction(int arr[], int size); void andAnotherOne(int arr[], int size); void justBecauseWeCan(int arr[], int size); void whyNot(int arr[], int size); void whatIsThis(int arr[], int size); void seriously(int arr[], int size); void thisIsGettingRidiculous(int arr[], int size); void butWeAreNotDoneYet(int arr[], int size); void almostThere(int arr[], int size); void oneMoreFunction(int arr[], int size); void okLastOne(int arr[], int size); int main() { initArrays(); copyArray(a, b, 12); complicatedLoop(c, 100); complicatedLoop(d, 100); complicatedLoop(e, 100); superComplicatedLogic(b, c, 12); doNothing(); mysteryFunction(f, 100); anotherMysteryFunction(g, 100); andAnotherOne(h, 100); justBecauseWeCan(I, 100); whyNot(j, 100); whatIsThis(k, 100); seriously(l, 100); thisIsGettingRidiculous(m, 100); butWeAreNotDoneYet(n, 100); almostThere(o, 100); oneMoreFunction(p, 100); okLastOne(q, 100); printArrayAsChars(b, 12); return 0; } void initArrays() { for(int i = 0; i < 100; i++) { c[i] = 0; d[i] = 0; e[i] = 0; f[i] = 0; g[i] = 0; h[i] = 0; I[i] = 0; j[i] = 0; k[i] = 0; l[i] = 0; m[i] = 0; n[i] = 0; o[i] = 0; p[i] = 0; q[i] = 0; r[i] = 0; s[i] = 0; t[i] = 0; u[i] = 0; v[i] = 0; w[i] = 0; x[i] = 0; y[i] = 0; z[i] = 0; } } void copyArray(int src[], int dest[], int size) { for(int i = 0; i < size; i++) { dest[i] = src[i]; } } void printArrayAsChars(int arr[], int size) { for(int i = 0; i < size; i++) { cout << char(arr[i]); } } void doNothing() { int a = 0; a++; a--; if(a == 0) { } } void complicatedLoop(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] + 0; } } void superComplicatedLogic(int arr1[], int arr2[], int size) { for(int i = 0; i < size; i++) { arr2[i] = arr1[i] + 0; } } void mysteryFunction(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] * 1; } } void anotherMysteryFunction(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] / 1; } } void andAnotherOne(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] - 0; } } void justBecauseWeCan(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] + (0 * i); } } void whyNot(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] - (0 * i); } } void whatIsThis(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] * (1 + 0); } } void seriously(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] / (1 - 0); } } void thisIsGettingRidiculous(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] + (i * 0); } } void butWeAreNotDoneYet(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] - (i * 0); } } void almostThere(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] * (1 + (0 * i)); } } void oneMoreFunction(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] / (1 - (0 * i)); } } void okLastOne(int arr[], int size) { for(int i = 0; i < size; i++) { arr[i] = arr[i] + 0; } }
-
-5
#include<bits/stdc++.h> using namespace std; int N; char g[25][25][3]; set<int> s; bool st[25][25][19683]; int pow3[10]; bool test_win(int b) { int cells[3][3]; //得到当前b表示的这个格子 for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { cells[i][j]=b%3; b/=3; } } for(int r=0;r<3;r++) //判断行是否满足MOO或OMM { if(cells[r][0]==1&&cells[r][1]==2&&cells[r][2]==2) return true; if(cells[r][0]==2&&cells[r][1]==2&&cells[r][2]==1) return true; } for(int c=0;c<3;c++)//判断列是否满足MOO或OMM { if(cells[0][c]==1&&cells[1][c]==2&&cells[2][c]==2) return true; if(cells[0][c]==2&&cells[1][c]==2&&cells[2][c]==1) return true; } //判断对角线是否满足MOO或OMM if(cells[0][0]==1&&cells[1][1]==2&&cells[2][2]==2) return true; if(cells[0][0]==2&&cells[1][1]==2&&cells[2][2]==1) return true; if(cells[2][0]==1&&cells[1][1]==2&&cells[0][2]==2) return true; if(cells[2][0]==2&&cells[1][1]==2&&cells[0][2]==1) return true; return false; } void dfs(int i,int j,int b) //走到了(i,j这个位置,当前状态是b) { if(st[i][j][b]) return ; //出现过直接结束 st[i][j][b]=true; //标记已经出现过 if(g[i][j][0]=='M'||g[i][j][0]=='O') //可以加了一位 { int r=g[i][j][1]-'1',c=g[i][j][2]-'1',idx=r*3+c; // 行 列 扩展了要填的位置 int pre=(b/pow3[idx])%3; //当前的数字 if(pre==0) //当前位置上是空的 { int now=g[i][j][0]=='M'?1:2; //得到当前位置上的数字 b=(b%pow3[idx])+now*pow3[idx]+(b-b%pow3[idx+1]); // 前面的部分 更新的状态 后面的部分 if(test_win(b)) { s.insert(b); return ; } } } if(g[i-1][j][0]!='#') dfs(i-1,j,b); //上 if(g[i+1][j][0]!='#') dfs(i+1,j,b); //下 if(g[i][j-1][0]!='#') dfs(i,j-1,b); //左 if(g[i][j+1][0]!='#') dfs(i,j+1,b); //右 } int main() { pow3[0]=1; for(int i=1;i<=9;i++) pow3[i]=pow3[i-1]*3; //pow3[i]表示3的i次方 int n; cin>>n; int sx,sy; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { cin>>g[i][j][0]>>g[i][j][1]>>g[i][j][2]; //board表示(i,j)的格子状态 if(g[i][j][0]=='B') //位置 { sx=i,sy=j; } } } //return 0; dfs(sx,sy,0); //开始搜索 cout<<s.size(); //方案的数目 return 0; }
Information
- ID
- 838
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 2
- Tags
- # Submissions
- 714
- Accepted
- 118
- Uploaded By