A. A and B and Chess
题意:给出8*8的棋盘,大写的字母代表白方,小写的字母代表黑方,比较两方分别的权值多少
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 7 char s[10][10]; 8 9 int main() 10 { 11 int a=0,b=0,i,j; 12 for(i=0;i<8;i++) cin>>s[i]; 13 14 for(i=0;i<8;i++) 15 { 16 for(j=0;j<8;j++) 17 { 18 19 if(s[i][j]=='Q') a+=9; 20 if(s[i][j]=='q') b+=9; 21 22 if(s[i][j]=='R') a+=5; 23 if(s[i][j]=='r') b+=5; 24 25 if(s[i][j]=='B') a+=3; 26 if(s[i][j]=='b') b+=3; 27 28 if(s[i][j]=='N') a+=3; 29 if(s[i][j]=='n') b+=3; 30 31 if(s[i][j]=='P') a+=1; 32 if(s[i][j]=='p') b+=1; 33 } 34 } 35 36 if(a>b) printf("White "); 37 else if(a<b) printf("Black "); 38 else 39 printf("Draw "); 40 }
B. A and B and Compilation Errors
题意:给出n个数,再删掉其中的一个数,再删掉一个数,输出第一个被删除的数,第二个被删除的数
先排序,然后再用删之前的那一列数到新的这一列数中去找,没有找到,则说明被删除了
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 7 int a[100005],b[100005],c[100005]; 8 9 int main() 10 { 11 int n,i,j,x,y; 12 scanf("%d",&n); 13 for(i=1;i<=n;i++) scanf("%d",&a[i]); 14 sort(a+1,a+n+1); 15 for(i=1;i<=n-1;i++) scanf("%d",&b[i]); 16 sort(b+1,b+n); 17 for(i=1;i<=n-2;i++) scanf("%d",&c[i]); 18 sort(c+1,c+n-1); 19 20 for(i=1;i<=n;i++) 21 { 22 if(a[i]!=b[i]) 23 { 24 x=a[i]; 25 break; 26 } 27 } 28 for(i=1;i<=n-1;i++) 29 { 30 if(c[i]!=b[i]) 31 { 32 y=b[i]; 33 break; 34 } 35 } 36 printf("%d ",x); 37 printf("%d ",y); 38 }
C. A and B and Team Training
题意:给出n个教练,n个新手,组队是一个教练带两个新手,或者两个教练带一个新手,问最多能组多少个队伍
自己想的时候= =想到dp去了---后来问到思路是这样的 如果哪一边人多,就出两个人,哪一边人少,就出一个人,两边人数相同,则随便
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 7 int main() 8 { 9 int n,m,ans=0; 10 scanf("%d %d",&n,&m); 11 while((n+m>=3)&&n&&m) 12 { 13 if(n>=m) 14 { 15 n=n-2;m=m-1; 16 } 17 else 18 { 19 n=n-1;m=m-2; 20 } 21 ans++; 22 } 23 printf("%d ",ans); 24 }
D
题意:给出26个字母分别的权值,再给出一个字符串, 求满足这两个条件的子串的个数 1 首尾字母相同 2 除去首尾字母其他字母加起来的和为0
搜了题解来看= =还是没有明白---占坑---