[CF538D]Weird Chess
来源:互联网 发布:路由器网络异常 编辑:程序博客网 时间:2024/06/05 06:44
题目大意
懒得写
做法
暴力判断哪些走法要封死。
剩余走法都可以当做有效,判断每个应该攻击的位置是否被攻击了。
#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;const int maxn=100+10,mx=50;bool pd[maxn][maxn],bz[maxn][maxn];char s[maxn][maxn];int i,j,k,l,t,n,m;bool czy;char get(){ char ch=getchar(); while (ch!='o'&&ch!='x'&&ch!='.') ch=getchar(); return ch;}int main(){ scanf("%d",&n); fo(i,1,n) fo(j,1,n) s[i][j]=get(); fo(i,1,n) fo(j,1,n) fo(k,1,n) fo(t,1,n) if (s[i][j]=='o'&&s[k][t]=='.') pd[k-i+mx][t-j+mx]=1; czy=1; fo(i,1,n) fo(j,1,n) if (s[i][j]=='o') fo(k,-i+1,n-i) fo(t,-j+1,n-j) if (!pd[k+mx][t+mx]) bz[i+k][j+t]=1; fo(i,1,n) fo(j,1,n) if (s[i][j]=='x'&&!bz[i][j]){ czy=0; break; } if (!czy){ printf("NO\n"); return 0; } printf("YES\n"); fo(i,-n+1,n-1){ fo(j,-n+1,n-1) if (i==j&&i==0) printf("o"); else if (pd[i+mx][j+mx]) printf("."); else printf("x"); printf("\n"); }}
阅读全文
0 0
- [CF538D]Weird Chess
- codeforces #300 D. Weird Chess
- CF 538D(Weird Chess-反过来算)
- Codeforces 538D Weird Chess 暴力、构造
- weird
- chess
- Chess
- chess
- chess
- Chess
- Chess
- Chess
- chess
- Chess
- Chess
- Weird Events
- Weird Clock
- Weird Clock
- scala合并文件,删除具有相同字段的记录
- Java项目经验
- Spring 注解 @RequestMapping
- Ubuntu安装nodejs
- 真Unity3d_基于profiler的优化(三)
- [CF538D]Weird Chess
- HDU 5512 Pagodas (水题+GCD )
- Mac配置JDK环境变量
- Java中对象的深复制(深克隆)和浅复制(浅克隆)介绍
- [CF538E]Demiurges Play Again
- linux 下串口通信
- EditView输入监听
- 常用的正则表达式
- 功耗优化