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

2 2
1 1 1
2 2 2

Sample Output

1

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 打鼹鼠相关推荐

  1. html鼹鼠出现不重叠,洛谷 P2285 BZOJ 1207 [HNOI2004]打鼹鼠

    题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气. ...

  2. bzoj 1207: [HNOI2004]打鼹鼠

    看似n^2暴力 其实第二个循环是1~n递增的 而且常熟极小 就跑过了 /**************************************************************Pr ...

  3. BZOJ 1207(dp)

    传送门 题面: 1207: [HNOI2004]打鼹鼠 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4197  Solved: 2019 [Sub ...

  4. DP || HYSBZ 1207 打鼹鼠

    n*n的网格,有m个鼹鼠,t时间会有一只鼹鼠出现在(x,y)点处,如果机器人也在这个点就可以打到鼹鼠 机器人初始位置任意,每秒可以移动一格,问最多打到多少鼹鼠 *解法:f[i]表示前i只鼹鼠打了多少个 ...

  5. 一句话题解(20170801~20170125)

    8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...

  6. [总结:]BZOJ水题70题留念

    时间过得很快,转眼间BZOJ已经做了70道水题了.现在做一个整理 1001:狼抓兔子:平面图最小割转化为最短路,主要麻烦再建图 1002:轮状病毒:行列式+高精度 1008:越狱:快速幂+组合数学 1 ...

  7. 【HNOI2004】【codevs1256】【BZOJ1207】打鼹鼠,小小DP

    打鼹鼠 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出 ...

  8. 【BZOJ】初级水题列表——献给那些想要进军BZOJ的OIers

    BZOJ初级水题列表--献给那些想要进军BZOJ的OIers 顺便纪念我的BZOJ 50_Problems_ACCEPTED 代码长度解释一切! 注:以下代码描述均为C++ RunID User Pr ...

  9. BZOJ ac100题存档

    不知不觉AC100题了,放眼望去好像都是水题.在这里就做一个存档吧(特别感谢各位大神尤其是云神http://hi.baidu.com/greencloud和丽洁姐http://wjmzbmr.com/ ...

最新文章

  1. Zotero科研文献管理 - 将PDF文件同步到Google Driver中,不同电脑无缝使用
  2. mysql php查询错误_php查询mysql数据库错误
  3. Web前端开发笔记——第三章 CSS语言 第二节 CSS选择器
  4. 使用Mockito模拟自动装配的字段
  5. stc8g1k08程序范例_通过WiFi对STC单片机程序下载和调试
  6. am335x修改sd卡cd管脚
  7. Easy Math(2018 ACM-ICPC 徐州赛区网络赛 D)
  8. 在java中对于构造函数_在Java语言中,下面有关于构造函数的描述正确的是()。
  9. efcore 批量_EFcore使用EFCore.BulkExtensions 批量增加、删除、修改
  10. linux flush 磁盘,linux 磁盘IO栈和优化思路
  11. springmvc+druid+dataSource配置的两种方式
  12. 数据库实验四 视图实验
  13. (PKCS1)RSA公私钥pem文件解析
  14. 计算二叉树中各结点的最大元素的值
  15. C/C++ getcwd 获取项目的运行路径
  16. 使用多种方法在Word方框中打对勾√和叉叉×
  17. 微信支付分终于开放了,你的支付分有600分吗?
  18. 远程监控tomcat运行
  19. 将前端网页生成二维码
  20. python全局变量和局部变量可以同名吗_Python global

热门文章

  1. ES批量提交-RestHighLevelClient
  2. ws.v6p.coindex.php,php_168_v6目录
  3. php将上传的图片转为base64,html5实现把上传的图片转成base64编码在显示(代码实例)...
  4. floatingactionbutton 更改背景颜色_经验分享!Word轻松换掉证件照背景颜色
  5. matlab 常用命令
  6. 2019年东莞特长生 游戏(洛谷 P2661 信息传递)
  7. Codeforces 1338E JYPnation (图论)
  8. 火箭轨道计算属于什么计算机技术,2018年计算机二级高级Office每日一练 2月27日...
  9. 通信系统概论_移动通信复习资料
  10. MySQL分库分表 mycat