题解 CF519A 【A and B and Chess】 发表于 2019-01-17 更新于 2026-03-09 阅读次数: Waline: 阅读次数: CF519A 【A and B and Chess】题解。 此题就是一个模拟题,但是如果一个个判断会很烦,而且代码量会很多,这里我就提出一种更好的方法: 事先开一个数值数组,对特殊的字符位置赋值 然后直接累加就好了。 代码: 12345678910111213141516171819202122#include<bits/stdc++.h>using namespace std;int ans,s[200];//数值数组//ans累加白方比黑方多的分数char a;int main(){ s['Q']=9,s['q']=-9; //这里以白方为基准,其实用黑方也是一样的效果 //既然对白方是9分,那么如果黑方再来一个就得是-9分(抵消) //以下同理 s['R']=5,s['r']=-5; s['B']=s['N']=3,s['b']=s['n']=-3; s['P']=1,s['p']=-1; for (int i=0;i<8;i++) for (int j=0;j<8;j++){ cin>>a; ans+=s[a]; } if (ans<0)printf ("Black");//白方比黑方多负分,当然黑方输出 else if (ans)printf ("White");//同理 else printf ("Draw");}