codeforces B
来源:互联网 发布:淘宝助理5.8.3 编辑:程序博客网 时间:2024/04/26 05:07
题意:给一个五子棋布局,判断X棋手下一步是否能获胜。
思路:选一个空白处行扫,列扫。对角线扫,扫到4个子就能获胜
#include<cstdio>using namespace std;char a[15][15];int flag;bool solve(int x,int y,int cnt,int e){int cnt1,cnt2,cnt3,cnt4;cnt1=cnt2=cnt3=cnt4=0;for(int i=x+1;i<10&&cnt1<4&&a[i][y]=='X';i++)cnt1++;for(int i=x-1;i>=0&&cnt1<4&&a[i][y]=='X';i--) // 左右两边 cnt1++;for(int i=y+1;i<=10&&cnt2<4&&a[x][i]=='X';i++) //上下 cnt2++;for(int i=y-1;i>=0&&cnt2<4&&a[x][i]=='X';i--)cnt2++;for(int i=x-1,j=y-1;x>=0&&y>=0&&cnt3<4&&a[i][j]=='X';i--,j--)//主对角 cnt3++;for(int i=x+1,j=y+1;x<10&&y<10&&cnt3<4&&a[i][j]=='X';i++,j++)cnt3++;for(int i=x-1,j=y+1;x>=0&&y<10&&cnt4<4&&a[i][j]=='X';i--,j++)//副对角 cnt4++;for(int i=x+1,j=y-1;x<10&&y>=0&&cnt4<4&&a[i][j]=='X';i++,j--)cnt4++;if(cnt1==4||cnt2==4||cnt3==4||cnt4==4)return 1;else return 0;}int main(){//freopen("in.txt","r",stdin);for(int i=0;i<10;i++)scanf("%s",a[i]);flag=0;for(int i=0;i<10;i++){for(int j=0;j<10;j++)if(a[i][j]=='.'){if(solve(i,j,0,0))flag=1;}}if(flag)printf("YES\n");elseprintf("NO\n");}
阅读全文
0 0
- codeforces B
- codeforces B
- codeforces B
- codeforces B
- CodeForces 626B CodeForces 626B【暴力】
- CodeForces 841B (B) 博弈
- codeforces 134B
- codeforces#98 b
- codeforces 105 div2 B
- Codeforces 166B - Polygons
- codeforces B. Coins
- codeforces----193B Xor
- codeforces----208B Solitaire
- Codeforces 1B - Spreadsheet
- codeforces 214B Hometask
- Codeforces Round #136 B
- CodeForces 224B Array
- Problem - 216B - Codeforces
- 【贪心枚举】拨钟问题
- 面试心得与总结—BAT、网易、蘑菇街
- 使用ABBYY FineReader 12心得体会总结
- 【BZOJ3110】K大数查询(树套树)
- 7.22会议记录
- codeforces B
- 2.0vue.js 全局组件模板例子说明
- 使用正则表达式抓取网易云课堂中的数据
- 练习赛1(AC题)
- px和em和rem的区别,CSS中link 和@import的区别是?
- HDU
- 关于Highcharts饼状(pie)图AJAX动态赋值的问题
- 微信js-sdk接口
- R语言学习一——环境的搭建