本文主要是介绍Codeforces Round #328 (Div. 2)Problem A. PawnChess(模拟),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目连接
题意:一个8*8的棋盘,A,B两个人下棋,每次是A先手,A希望最早把W移到第一排,B希望能最早把B移到最后一行,每次只能移动一步,且只能移到空的位置,问谁赢。
解法:直接模拟
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define pb push_back
#define P pair<int,int>
#define cl(a,b) memset(a,b,sizeof(a))
const int maxn=10005;
const int inf=1<<27;
char mp[10][10];
int up(int i,int j){int cnt=1;while(i>=0&&mp[i][j]=='.')i--,cnt++;if(i>=0)return inf;return cnt;
}
int down(int i,int j){int cnt=1;while(i<8&&mp[i][j]=='.')i++,cnt++;if(i<8)return inf;return cnt;
}
int main(){int A=inf,B=inf;for(int i=0;i<8;i++){scanf("%s",mp[i]);}for(int i=0;i<8;i++){for(int j=0;j<8;j++){if(mp[i][j]=='W'){A=min(A,up(i-1,j));}if(mp[i][j]=='B'){B=min(B,down(i+1,j));}}}//cout<<A<<' '<<B<<endl;if(A<=B){puts("A");}else {puts("B");}return 0;
}
这篇关于Codeforces Round #328 (Div. 2)Problem A. PawnChess(模拟)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!