【HDU】5254 棋盘占领(BFS)
来源:互联网 发布:作业管理系统java 编辑:程序博客网 时间:2024/05/21 11:33
这题给的不明不白的,一开始不清楚有公共点是几个意思
10 11
01 可以变成 11
直接BFS就可以了
#include<queue>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn = 555;int n,m,ans;int vis[maxn][maxn];int mat[maxn][maxn];int state[maxn][maxn][4];// 0 1 2 3const int dir[4][2] = {{-1,0},{1,0},{0,-1},{0,1}};queue<int>qx,qy;bool judge(int x,int y){ if(state[x][y][0] && state[x][y][2]) return true; if(state[x][y][0] && state[x][y][3]) return true; if(state[x][y][1] && state[x][y][2]) return true; if(state[x][y][1] && state[x][y][3]) return true; return false;}void bfs(){ while(!qx.empty()){ int x = qx.front(),y = qy.front(); qx.pop(); qy.pop(); for(int i = 0; i < 4; i++){ int xx = x + dir[i][0]; int yy = y + dir[i][1]; if(xx >= 1 && xx <= n && yy >= 1 && yy <= m && !vis[xx][yy]){ state[xx][yy][i] = 1; if(judge(xx,yy)){ vis[xx][yy] = 1; qx.push(xx); qy.push(yy); ans ++; } } } } printf("%d\n",ans);}int main(){ int T,Case = 1; scanf("%d",&T); while(T--){ int t; memset(vis,0,sizeof(vis)); memset(state,0,sizeof(state)); scanf("%d%d",&n,&m); scanf("%d",&t); ans = 0; for(int i = 0; i < t; i++){ int x,y; scanf("%d%d",&x,&y); if(!vis[x][y]){ vis[x][y] = 1; qx.push(x); qy.push(y); ans ++; } } printf("Case #%d:\n",Case++); bfs(); } return 0;}
0 0
- 【HDU】5254 棋盘占领(BFS)
- HDU 5254 棋盘占领(暴力枚举)
- HDU 5254 棋盘占领(百度之星初赛2)
- HDU ACM 5254 棋盘占领->暴力枚举
- hdu 5254 棋盘占领(百度之星2015初赛2 1003)暴力模拟
- 2015 百度之星 初赛2 1003 棋盘占领 (bfs)题解
- 百度之星初赛(2)—BFS小试牛刀 problem 1002 占领棋盘
- hdu5254 棋盘占领 dfs
- 2015百度之星初赛(2)棋盘占领 递归
- HDU 1401 Solitaire(棋盘状态BFS)
- 百度之星初赛2 棋盘占领
- POJ1753 状态压缩(+BFS) + 棋盘问题
- CSUOJ 1511 残缺的棋盘(BFS)
- 百度之星 2015 初赛(2) 1003 棋盘占领
- 【百度之星初赛2】棋盘占领(深搜|广搜)
- [DFS]百度之星初赛第二场 棋盘占领
- POJ1312 棋盘问题 BFS
- bfs 走马 棋盘
- Codeforces Round #249 (Div. 2) B. Pasha Maximizes(模拟)
- 4.20
- 团队管理的感悟---尽可能不要让成员感到怀才不遇
- Oracle之SQL基础
- vmware里面的linux怎么和windows相互传文件
- 【HDU】5254 棋盘占领(BFS)
- 正规表示法与文件格式化处理
- DOM树节点解析
- 黑马程序员_java语言_IO流
- java继承覆盖总结
- 银联 chinapay php版本库文件netpayclient php在php5 4以上版本中提示hex2bin 重定义
- POJ 1201 解题报告
- JAVA的Hello World
- Android开发者:你真的会用AsyncTask吗?