UVA 707 - Robbery
搜啊搜~~~~~~~
1.用记忆化搜索 来搜答案,否则搜不完~
2.题目理解起来有困难....sad
讲:如果最后没有找到任何时间任何地点可能有贼,说明他跑掉了
除了上面这种情况,如果在所有时间里都同时存在多于一个点可能有贼,则Nothing known
除了上面两种情况,输出能确定贼的时间和该时间贼的地点
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;typedef pair<int,int> pii;
const int maxn = 105;int h,w,t;
int d[maxn][maxn][maxn];
int dx[] = {-1,0,1,0,0};
int dy[] = {0,1,0,-1,0};
vector<pii> ans[maxn];void init(){memset(d,-1,sizeof(d));int n;scanf("%d",&n);int tt,xa,ya,xb,yb;for(int i = 0; i < n; i++){scanf("%d%d%d%d%d",&tt,&xa,&ya,&xb,&yb);for(int i = xa; i <= xb; i++){for(int j = ya; j <= yb; j++){d[tt][i][j] = 0;}}}
}
int dfs(int x,int y,int tt){int &ans = d[tt][x][y];if(ans != -1) return ans;ans = 0;if(tt == t) return ans = 1;for(int i = 0; i < 5; i++){int xx = x + dx[i];int yy = y + dy[i];if(xx<1||xx>h||yy<1||yy>w) continue;if(dfs(xx,yy,tt+1)) ans = 1;}return ans;
}
int solve(){int flag;for(int i = 1; i <= t; i++){flag = 0;ans[i].clear();for(int j = 1; j <= h; j++){for(int k = 1; k <= w; k++){if(d[i][j][k] == 1){ans[i].push_back(make_pair(j,k));flag = 1;}}}if(flag == 0) return 0;}flag = 1;for (int i = 1; i <= t; i++) {if (ans[i].size() == 1) {printf("Time step %d: The robber has been at %d,%d.\n", i, ans[i][0].first, ans[i][0].second);flag = 0;}}if (flag) return 1;return 2;
}
int main(){int cas = 0;while(scanf("%d%d%d",&h,&w,&t)){if(!h&&!w&&!t) break;init();for(int i = 1; i <= h; i++){for(int j = 1; j <= w; j++){dfs(i,j,1);}}printf("Robbery #%d:\n",++cas);int tmp = solve();if (tmp == 0) printf("The robber has escaped.\n");else if (tmp == 1) printf("Nothing known.\n");printf("\n");}return 0;
}
输出语句手打,打错了单词,wrong了好几次,不能再笨/T_T
UVA 707 - Robbery相关推荐
- uva 707(记忆化搜索)
题意:在一个方阵中,一个强盗犯要逃跑.你是警察要去抓他,现在你手上有若干线索他们会告诉你第i时刻一个方阵中他们没有看见强盗.在t秒后全部道路会封锁.让你通过线索来判断是不是能够找到小偷在某一秒的位置. ...
- π-Algorithmist分类题目(3)
原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(3) Probability ...
- UVa Online Judge 工具網站
UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...
- (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO
下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...
- 算法竞赛入门经典+挑战编程+USACO
下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...
- ACMer Training 学习指导
本文原地址 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 二.<算法竞赛入门经典> ...
- [搜索]UVa 129 困难的串
题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...
- uva 401.Palindromes
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- Uva 3767 Dynamic len(set(a[L:R])) 树套树
Dynamic len(set(a[L:R])) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/in ...
最新文章
- html中legend设置大小,HTML_如何给 legend 标签设定宽度,我们在做表单的时候经常会使 - phpStudy...
- 近期活动盘点:清华严飞大数据探寻中国文脉讲座、2019前沿信息科技创新论坛...
- [发布]Lucene索引分析工具Luke.Net 0.5升级版 (兼容Lucene.Net 2.9.4.1)
- SQL Server 个人手册
- 微服务架构(一):什么是微服务
- 军哥华为HCNP(科目H12-221)真题解析课程:1-30题
- 天线巴伦制作和原理_10米段的春天 | 用自制环型天线+改装SDR接收器27MHz采访实录...
- [轉]最流行的PHP MVC框架
- Hibernate 与触发器协同工作
- Netty入门之HelloWorld
- 软件项目管理实用教程(人民邮电出版)第二章课后习题
- 《遗传算法原理及应用》笔记—绪论
- 现代通信技术之软交换技术和IMS技术
- elk日志管理系统搭建
- KK音标和国际音标的对照
- iptables中SNAT、DNAT和MASQUERADE的含义【转】
- 拼字 公式_蒸汽机的未来,3D拼字游戏等等
- Android Studio设置http proxy加速下载(亲测有效)
- c语言课程设计文献检索,文献检索课学习心得三篇(2)
- http 301、302、304、400、405、415状态码解释