我是靠谱客的博主 唠叨火车,最近开发中收集的这篇文章主要介绍随笔—邀请赛前训—Codeforces Round #328 (Div. 2) A. PawnChess,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
题意:给你一个8×8的棋盘分布,红黑棋子,双方只能朝上下其中一个方向移动,不可跨越对方或自己的棋子,最先到对面底部的人赢。问谁赢?
思路:上下2排同时开始扫,先扫到谁都棋,谁就赢(前提是没有对方的人挡路。。)
#include<cstdio> #include<cstring> #include<iostream> using namespace std; #define MAX(x,y) (((x)>(y)) ? (x) : (y)) #define MIN(x,y) (((x) < (y)) ? (x) : (y)) #define ABS(x) ((x)>0?(x):-(x)) const int inf = 0x7fffffff; int occupied_by_black[10]; int occupied_by_white[10]; char mp[10][10]; int main() { char winer='*'; for(int i=1; i<=8; i++){ scanf("%s",mp[i]+1); } for(int i=1; i<=8; i++){ int p_for_white=i; int p_for_black=8-i+1; for(int j=1;j<=8;j++){ if(mp[p_for_white][j] == 'B') occupied_by_black[j]=1; if(mp[p_for_white][j] == 'W' && occupied_by_black [j] == 0){ occupied_by_white[j]=1; winer='A'; break; } } if(winer != '*') break; for(int j=1; j<=8; j++){ if(mp[p_for_black][j] == 'W') occupied_by_white[j]=1; if(mp[p_for_black][j] == 'B' && occupied_by_white [j] == 0){ occupied_by_black[j]=1; winer='B'; break; } } if(winer != '*') break; } cout<<winer<<endl; return 0; }
转载于:https://www.cnblogs.com/shawn-ji/p/5539207.html
最后
以上就是唠叨火车为你收集整理的随笔—邀请赛前训—Codeforces Round #328 (Div. 2) A. PawnChess的全部内容,希望文章能够帮你解决随笔—邀请赛前训—Codeforces Round #328 (Div. 2) A. PawnChess所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复