BZOJ 1207 打鼹鼠
Description
鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气。你可以控制一个机器人来打鼹鼠,如果i时刻鼹鼠在某个网格中出现,而机器人也处于同一网格的话,那么这个鼹鼠就会被机器人打死。而机器人每一时刻只能够移动一格或停留在原地不动。机器人的移动是指从当前所处的网格移向相邻的网格,即从坐标为(i,j)的网格移向(i-1, j),(i+1, j),(i,j-1),(i,j+1)四个网格,机器人不能走出整个n*n的网格。游戏开始时,你可以自由选定机器人的初始位置。现在你知道在一段时间内,鼹鼠出现的时间和地点,希望你编写一个程序使机器人在这一段时间内打死尽可能多的鼹鼠。
Input
第一行为n(n<=1000), m(m<=10000),其中m表示在这一段时间内出现的鼹鼠的个数,接下来的m行每行有三个数据time,x,y表示有一只鼹鼠在游戏开始后time个时刻,在第x行第y个网格里出现了一只鼹鼠。Time按递增的顺序给出。注意同一时刻可能出现多只鼹鼠,但同一时刻同一地点只可能出现一只鼹鼠。
Output
仅包含一个正整数,表示被打死鼹鼠的最大数目
Sample Input
1 1 1
2 2 2
Sample Output
HINT
最长不下降序列,定义>=为abs(a.x-b.x)+abs(a.y-b.y) <= a.t-b.t,O(n^2)求出最长不下降序列即可(常数小,所以能够跑过去)。
1 #include<cmath> 2 #include<cstdio> 3 #include<cstdlib> 4 using namespace std; 5 6 #define inf (1<<30) 7 #define maxn 1010 8 #define maxm 10010 9 int n,m,ans,f[maxm]; 10 struct node 11 { 12 int t,x,y; 13 friend inline bool operator >=(const node &a,const node &b) 14 { 15 return abs(a.x-b.x)+abs(a.y-b.y) <= a.t-b.t; 16 } 17 inline void read() { scanf("%d %d %d",&t,&x,&y); } 18 }seq[maxm]; 19 20 int main() 21 { 22 freopen("1207.in","r",stdin); 23 freopen("1207.out","w",stdout); 24 scanf("%d %d",&n,&m); 25 for (int i = 1;i <= m;++i) seq[i].read(); 26 for (int i = 1;i <= m;++i) 27 { 28 int best = 0; 29 for (int j = 1;j < i;++j) 30 if (f[j] > f[best]&&seq[i] >= seq[j]) best = j; 31 f[i] = f[best]+1; 32 if (f[i] > ans) ans = f[i]; 33 } 34 printf("%d",ans); 35 fclose(stdin); fclose(stdout); 36 return 0; 37 }
View Code
转载于:https://www.cnblogs.com/mmlz/p/4280159.html
BZOJ 1207 打鼹鼠相关推荐
- html鼹鼠出现不重叠,洛谷 P2285 BZOJ 1207 [HNOI2004]打鼹鼠
题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气. ...
- bzoj 1207: [HNOI2004]打鼹鼠
看似n^2暴力 其实第二个循环是1~n递增的 而且常熟极小 就跑过了 /**************************************************************Pr ...
- BZOJ 1207(dp)
传送门 题面: 1207: [HNOI2004]打鼹鼠 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4197 Solved: 2019 [Sub ...
- DP || HYSBZ 1207 打鼹鼠
n*n的网格,有m个鼹鼠,t时间会有一只鼹鼠出现在(x,y)点处,如果机器人也在这个点就可以打到鼹鼠 机器人初始位置任意,每秒可以移动一格,问最多打到多少鼹鼠 *解法:f[i]表示前i只鼹鼠打了多少个 ...
- 一句话题解(20170801~20170125)
8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...
- [总结:]BZOJ水题70题留念
时间过得很快,转眼间BZOJ已经做了70道水题了.现在做一个整理 1001:狼抓兔子:平面图最小割转化为最短路,主要麻烦再建图 1002:轮状病毒:行列式+高精度 1008:越狱:快速幂+组合数学 1 ...
- 【HNOI2004】【codevs1256】【BZOJ1207】打鼹鼠,小小DP
打鼹鼠 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出 ...
- 【BZOJ】初级水题列表——献给那些想要进军BZOJ的OIers
BZOJ初级水题列表--献给那些想要进军BZOJ的OIers 顺便纪念我的BZOJ 50_Problems_ACCEPTED 代码长度解释一切! 注:以下代码描述均为C++ RunID User Pr ...
- BZOJ ac100题存档
不知不觉AC100题了,放眼望去好像都是水题.在这里就做一个存档吧(特别感谢各位大神尤其是云神http://hi.baidu.com/greencloud和丽洁姐http://wjmzbmr.com/ ...
最新文章
- Zotero科研文献管理 - 将PDF文件同步到Google Driver中,不同电脑无缝使用
- mysql php查询错误_php查询mysql数据库错误
- Web前端开发笔记——第三章 CSS语言 第二节 CSS选择器
- 使用Mockito模拟自动装配的字段
- stc8g1k08程序范例_通过WiFi对STC单片机程序下载和调试
- am335x修改sd卡cd管脚
- Easy Math(2018 ACM-ICPC 徐州赛区网络赛 D)
- 在java中对于构造函数_在Java语言中,下面有关于构造函数的描述正确的是()。
- efcore 批量_EFcore使用EFCore.BulkExtensions 批量增加、删除、修改
- linux flush 磁盘,linux 磁盘IO栈和优化思路
- springmvc+druid+dataSource配置的两种方式
- 数据库实验四 视图实验
- (PKCS1)RSA公私钥pem文件解析
- 计算二叉树中各结点的最大元素的值
- C/C++ getcwd 获取项目的运行路径
- 使用多种方法在Word方框中打对勾√和叉叉×
- 微信支付分终于开放了,你的支付分有600分吗?
- 远程监控tomcat运行
- 将前端网页生成二维码
- python全局变量和局部变量可以同名吗_Python global
热门文章
- ES批量提交-RestHighLevelClient
- ws.v6p.coindex.php,php_168_v6目录
- php将上传的图片转为base64,html5实现把上传的图片转成base64编码在显示(代码实例)...
- floatingactionbutton 更改背景颜色_经验分享!Word轻松换掉证件照背景颜色
- matlab 常用命令
- 2019年东莞特长生 游戏(洛谷 P2661 信息传递)
- Codeforces 1338E JYPnation (图论)
- 火箭轨道计算属于什么计算机技术,2018年计算机二级高级Office每日一练 2月27日...
- 通信系统概论_移动通信复习资料
- MySQL分库分表 mycat