A:
水题没什么好说的。
#include#include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;char ma[10][10];int su,su2;int main(){ while(scanf("%s",ma[0])!=EOF) { su=0; su2=0; for(int i=1;i<8;i++) scanf("%s",ma[i]); for(int i=0;i<8;i++) { for(int j=0;j<8;j++) { if(ma[i][j]=='Q') { su+=9; } else if(ma[i][j]=='q') { su2+=9; } else if(ma[i][j]=='R') { su+=5; } else if(ma[i][j]=='r') { su2+=5; } else if(ma[i][j]=='B') { su+=3; } else if(ma[i][j]=='b') { su2+=3; } else if(ma[i][j]=='N') { su+=3; } else if(ma[i][j]=='n') { su2+=3; } else if(ma[i][j]=='P') { su+=1; } else if(ma[i][j]=='p') { su2+=1; } else if(ma[i][j]=='K') { su+=0; } else if(ma[i][j]=='k') { su2+=0; } } } if(su>su2) printf("White\n"); else if(su==su2) { printf("Draw\n"); } else printf("Black\n"); } return 0;}
B:
水题,简单排序即可。
#include#include #include #include
C:
给你n个老手,m的新手,有两种组队方式,一种是1个老手带两个新手,另外一种是2个老手带一个新手,求最多的组队对数。
我是暴力求的,记得还有一种方法,不会算了。
#include#include #include #include
D.
题意:在给的一个串,每个字母有固定的权值求满足如下条件的子串的数目
1 该子串的首字母和尾字母相同
2 该串除了首尾字母外,其他字母的权值和为0
思路:维护一个前缀和,用了26个hash分别记录了26种字母每个的前缀和,如果遇到了一个'a',就检查之前有几个和他的前缀和一样的'a',在和上加上去,并维护前缀和。
map真的是好牛逼,可惜比赛的时候没想到,希望以后会用吧!
#include#include #include #include