XDU Problem 1039 - Qinz`s Game
来源:互联网 发布:巨人网络最新股价 编辑:程序博客网 时间:2024/06/05 18:39
每天从所占城堡中广搜看是否有周围的城堡能够被占领,如果能就加入,如果没人一个可以占领。输出NO
#include<cstdio>#include<cstring>#include<iostream>#include<queue>#define MAX 55using namespace std;int map[MAX][MAX],n,m,vis[MAX][MAX],x[MAX*MAX],y[MAX*MAX],k,power;int dx[4]={-1,1,0,0};int dy[4]={0,0,-1,1};int search(){ int m_c=0; int now=k; for(int i=0;i<now;i++) { int nx=x[i],ny=y[i]; for(int j=0;j<4;j++) { int u=nx+dx[j],v=ny+dy[j]; if(u<0||u>=n||v<0||v>=m||vis[u][v]||map[u][v]>=power) continue; vis[u][v]=1; x[k]=u;y[k++]=v; m_c++; } } return m_c;}int main(){ //freopen("data.txt","r",stdin); int T; cin>>T; while(T--) { memset(map,0,sizeof(map)); memset(vis,0,sizeof(vis)); k=0; int castle=1,day=0,flag=1; cin>>n>>m; //cout<<n<<" "<<m<<endl; for(int i=0;i<n;i++) for(int j=0;j<m;j++) cin>>map[i][j]; cin>>x[k++]>>y[k]; //从右到左 x[0]--;y[0]--; //cout<<x[0]<<" "<<y[0]<<endl; power=map[x[0]][y[0]]; vis[x[0]][y[0]]=1; //cout<<power<<endl; while(castle<n*m) { int t=search(); //cout<<t<<endl; if(t==0) {flag=0;break;} day++; castle+=t; power+=t; } if(flag) printf("YES %d\n",day); else printf("NO %d\n",castle); } return 0;}
- XDU Problem 1039 - Qinz`s Game
- XDU 1042 Qinz喝饮料(模拟)
- XDU Problem 1016 - Code
- XDU Problem 1105 - 打麻将
- XDU Problem 1255 - 数列游戏
- XDU Problem 1063 - Enjoy It
- xdu 1068 Clinton’s beliefs
- XDU Problem 1189 - Problem B -- 查字典
- XDU Problem 1033 - 实验室的新机子
- XDU Problem 1037 - 智破机枪阵
- XDU Problem 1241 - 最远曼哈顿距离
- uva 10404 Problem B: Bachet's Game 迭代
- xdu 1201 An Unfair Game 二分图匹配
- XDU Problem 1258 - 黑白棋 (二分图匹配 )
- Problem S
- Problem-S
- Problem S
- hdoj problem 1525 Euclid's Game (博弈问题(寻找关键点))
- win8消费者预览版怎么建立无线临时局域网,另外win8的虚拟wifi功能在哪呢?
- 大话设计模式 桥接模式
- C#贪吃蛇教程
- hadoop中namenode无法启动
- C语言中 c和h文件的区别!
- XDU Problem 1039 - Qinz`s Game
- mysql 密码过期
- 读取pbxproj格式的文件
- Hadoop在百度的应用--4000个节点的分布式集群
- HDOJ 1711 Number Sequence(KMP)
- TCP IP协议详解一:协议 第一章(二)
- 轻薄UI组件设计思想:人算代替机算
- Delphi控件IE窗口打开网页
- 代码记事本----Js 提交 表单 和 超链