USACO2016 January Gold Angry Cows
Angry Cows
题目描述:给出数轴上的\(n\)个整点\((a[i])\),现在要在数轴上选一个位置\(x\)(可以是实数),以及一个半径\(R\),在以\(x\)为中心,半径为\(R\)的范围内的点为被覆盖,然后被覆盖的点会以自己为中心,半径为\(R-1\)覆盖其它未被覆盖的点,以此类推,问覆盖所有点的最小\(R\)
solution
这道题挺好的,可能我对于那些有单调性的题目不是很熟悉吧。
从小到大排序,首先算出以\(i\)为半径中心,覆盖前\(i\)个点的最小半径\(f[i]\),容易得出\(f[i]\)是递增的。假设半径最左要覆盖到\(j\),那么\(f[i]=max(f[j]+1, a[i]-a[j])\),假设还有一个决策\(k, k>j\),因为\(f\)是递增的,当\(f[j]+1>=a[i]-a[j]\)时,\(j\)要比\(k\)优。当\(f[j]+1<a[i]-a[j]\)时,对于之后的\(i\),\(j\)的值固定不变,若\(k\)的值比\(j\)小,则\(j\)以后的不会成为最优决策了。所以最优决策时单调的。\(f\)可以线性解出。
类似的,\(g[i]\)表示覆盖\(i\)后的点的最小半径。然后二分答案,枚举第一次爆炸的左边界,因为\(R\)一定,右边界单调,判断是否有解即可。
时间复杂度:\(O(nlogn)\)
USACO2016 January Gold Angry Cows的更多相关文章
- NC24017 [USACO 2016 Jan S]Angry Cows
NC24017 [USACO 2016 Jan S]Angry Cows 题目 题目描述 Bessie the cow has designed what she thinks will be the ...
- BZOJ4525——[Usaco2016 Jan]Angry Cows
1.题意:给一堆可以的限制长度的区间...区间的长度是你控制的...但是只有一个长度...求最短长度覆盖所有的点 2.分析:发现可以二分...那二分吧.....然后我们从头向后扫一遍直接判断能否直接覆 ...
- bzoj4525: [Usaco2016 Jan]Angry Cows
二分. #include<cstdio> #include<algorithm> #include<cstring> using namespace std; + ...
- USACO 2005 January Gold The Wedding Juicer
题目 题目链接,我只在poj上找到了题目,usaco居然上不去. 大意就是说有一些\(1\times 1\times 1\)的小方块堆在一起,问最多能装多少水. 我们在一次测试中出了这题,由于我写水题 ...
- [USACO16JAN]愤怒的奶牛Angry Cows
传送门 一道神奇的DP………(鬼知道他为什么在tarjan里面) 一开始可能会考虑贪心或者什么其他神奇的算法,不过还是DP比较靠谱. 我们用f[i]表示摧毁所有i左侧的炸 药包最少需要的能量,用g[i ...
- [USACO16JAN]愤怒的奶牛Angry Cows (单调队列优化dp)
题目链接 Solution 应该可以用二分拿部分分,时间 \(O(n^2logn)\) . 然后可以考虑 \(n^2\) \(dp\) ,令 \(f_i\) 代表 \(i\) 点被激活,然后激活 \( ...
- [USACO16JAN]Angry Cows G 解题报告
一图流 参考代码: #include<bits/stdc++.h> #define ll long long #define db double #define filein(a) fre ...
- USACO 2016 January Contest, Gold解题报告
1.Angry Cows http://www.usaco.org/index.php?page=viewproblem2&cpid=597 dp题+vector数组运用 将从左向右与从右向左 ...
- POJ 3179 Corral the Cows
Corral the Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1352 Accepted: 565 De ...
随机推荐
- 微控制器(MCU)破解秘笈--背景知识
2.1 硅芯片安全措施的演变 工业控制器的硬件安全措施与嵌入式系统同时开始发展.三十年前的系统是由分离的部件如CPU,ROM,RAM,I/O缓冲器,串口和其他通信与控制接口组成的.如图2-1所示: 图 ...
- C#安装程序制作让安装后的程序开机自动运行
1.创建安装项目后要在自己的解决方案是添加一个新的类库项目(ClassLibrary1),并在新类库中添加一下安装程序类(Installer1),在Installer1类中添加如下代码: string ...
- 仿新浪微博短网址PHP实现方案
微博限制140字,但是我们知道有时需要分享一个类似淘宝商品的链接,很长,为了避免这个问题,所有了短网址的概念,废话不多说,直接把我的实现方案分享一下: 1)将长网址md5生成32位签名串,分为4段, ...
- UESTC_Can You Help God Wu CDOJ 582
There is a boy named God Wu in UESTC ACM team. One day he is asked to finish a task. The task is tha ...
- ubuntu centos debina
文章目录CentOSDebianCentOS与Debian哪个好?Ubuntu买VPS时有CentOS.Debian.Ubuntu三种操作系统可以选择,Linux下哪种系统更好是很多新人都会遇到的问题 ...
- iOS openURL方法实现打电话、发短信、发邮件、打开其他App
UIApplication有个功能十分强大的openURL:方法 - (BOOL)openURL:(NSURL*)url; 通过这个方法,我们可以实现: 先获取 UIApplication UIApp ...
- Kyoya and Colored Balls(组合数)
Kyoya and Colored Balls time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- vector之妙用系列
vector用法: 总结了下大家写的,感觉用着很方便: vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是 ...
- cocos2d-x绑定ccb文件
首先,ccb文件是如何生成的,我就不多说了,大家可以搜下cocosbuilder,就能找的相关的教程,而通过cocosbuilder,我们可以省去了很多设计的麻烦,比如设计一个精灵的位置啥的,而通过c ...
- ANCS协议翻译
综述 苹果通知中心(Apple Notification Center Service, ANCS)的目的是提供给蓝牙外设一种简单.方便的获取ios设备通知信息的方式. 依赖 ANCS的使用没有依赖, ...