![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
文章平均质量分 64
冷月残星
这个作者很懒,什么都没留下…
展开
-
贪心,STL,multiset(Alice and Bob,HDU 4268)
只想出了O(n^2)的算法。。。A按宽升序排序。B按高降序排序。n^2循环,找到就{ans++;break;}。超时。。后来想用二分查找的,但没有抓住问题的本质,被二维的关系搞懵逼了,总把宽和高绑定在一起思考,很混乱。想到上述方法也纯属抖机灵,没有想想为什么可以这样。事实上应该解决一维后就放弃这一维,只考虑第二维。上述方法的本质是从宽最小的开始找对手,找到能覆盖原创 2016-07-22 21:44:15 · 306 阅读 · 0 评论 -
贪心(Ball,HDU 5821)
又是很多人都做出来了的题目,自己却没有做出来。主要是思维上的障碍。一方面自己应该想好了再来写。确定好时间复杂度,正确性,编码复杂度。有一定把握了再来写代码。一开始想了个大概,然后开始写,一边写一边想,代码的讨论很复杂,写完后自己的数据过不了,改了很久,然后感觉讨论不清了,然后觉得交一发WA算了。然后交上去TLE,然后发现时间复杂度O(n^3)。少动键盘吧。原创 2017-07-25 19:36:33 · 324 阅读 · 0 评论 -
贪心,括号序列(Rikka with Parenthesis II,HDU 5831)
判断一个括号序列是否合法,可以用栈来模拟。就是左括号入栈,如果遇到右括号,但栈空或者不匹配那就错了。如果最后栈空也错了。本题只有一种括号,可以直接O(n)扫一遍判断。一开始cnt=0左括号cnt++右括号cnt--如果cnt为负,那就错了。如果最后cnt不为0,那也错了。或者说,首先左右括号的个数要相等。而且对任意的下标k,其左边的左括号数一定要原创 2017-07-25 17:41:31 · 395 阅读 · 0 评论 -
贪心,模拟,构造(HDU 5414,CRB and String)
WA了好久。。No写成了NOYes写成了YES读题:没问题算法:光是正确构造出来一个结果是远远不够的,我们更应该考虑在构造的过程中所使用的算法(比如贪心)是否会使得后面的构造失败。实现:没问题细节:No写成了NO,Yes写成了YES代码#include#include#includeusing namespace std;const in原创 2017-07-22 14:16:48 · 263 阅读 · 0 评论 -
贪心,暴力,网络流,匹配(MZL's City,HDU 5352)
这个题目可以抽象成以下问题。有一个M层的架子,每层最多放K颗珍珠,你有N个不同的珍珠,每颗珍珠都只能放在某些特定的层里,问怎么安排放置的方案,使得珍珠尽量往下层放(尽量往下层放的概念很模糊,准确一点讲就是字典序最小)。思考之后觉得这是一个很动态的问题,考虑过动态规划,但是感觉不怎么好定义状态,更别提状态转移了。然后就考虑转贪心,思考了很多办法,最后想到了一个暴力的方法,能保证正确性原创 2017-07-10 10:00:39 · 414 阅读 · 0 评论 -
规律,模拟,贪心(Travelling Salesman Problem,HDU 5402)
显然行列有一个是奇数就可以全部走完。这种情况直接模拟就好。否则的话,一定会有一个格子走不到。多试几种情况就可以发现这个规律。证明的话:http://blog.csdn.net/queuelovestack/article/details/47756605就是对整个棋盘进行黑白二染色,如果行列相加为偶数,就染成黑色,否则染成白色。我们的路径一定是黑白相间。当行列皆为偶数的时候我们原创 2017-07-16 20:13:35 · 256 阅读 · 0 评论 -
贪心,Dijkstra(The path,HDU 5385)
贪心构造距离,Dijkstra构造边。有一些细节写错了,在遍历边的时候,把e.v写成了i,WA了一段时间。一开始写代码的时候就要小心。代码#include#include#includeusing namespace std;const int maxn = 100010;const int inf = 0x3f3f3f3f;int n,m;in原创 2017-07-16 12:48:49 · 193 阅读 · 0 评论 -
贪心,暴力,递推,物品拆分(Delicious Apples,HDU 5303)
客观上来讲,之所以会没看清数据范围说明,或者要想比较久的时间才能想通,或者思考出了一些错误的算法,是因为不够熟练,所以才没有分配到足够的精力在看数据,或者想通一些很基本的原理,或者压根没想对一些很基本的原理。主观上来讲,在检查读题的阶段,很多时候自己只是把已经知道的东西又验证了很多遍,这是十分低效的。自己更应该仔细地读一遍题目,带着在一字一句中寻找矛盾的心态去阅读才比较好。对于剩下的问题,就是原创 2017-06-03 16:19:34 · 342 阅读 · 0 评论 -
贪心,二分,半平面交(丛林警戒队,LA 4992)
RE的6种可能1、数组开小了2、数组越界了3、除0了4、递归爆栈了5、指针6、申请空间过多了。还是感觉自己有问题,码得太多,想的太少,实践得更少。自己先跟自己玩玩攻防游戏,多玩几盘,就知道正确的防守方法了,然后思路与代码就是分分钟的事情。先抛开代码与算法不管,然后搞出一种手算的解决方案(像玩单机游戏那样去不断尝试),最后再想办法用代码去实现。原创 2017-02-02 20:41:05 · 393 阅读 · 0 评论 -
贪心加暴力(ZOJ 3715,Kindergarten Election)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3715贪心加暴力,可以出奇迹。之所以这句话那么流行,是因为贪心,暴力之类的算法会让人感到很低级,但又确实能解决很多问题。哪怕是通过数很低的题目,也有可能是通过贪心,暴力之类的算法解决的。注意数据规模,不大时可以考虑暴力+贪心原创 2017-04-25 09:51:34 · 376 阅读 · 0 评论 -
贪心(ZOJ 3778,Talented Chef)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3778给你n道菜,第i道菜需要a[i]步才能完成,厨师每次最多可以取m道不同的菜,各完成1步,问最少要多少次才能完成。答案:设a=max(a[i]),1b=((∑a[i])-1)/m+1。步数和除以m,向上取整。答案就是max(a,b)原创 2017-04-24 15:59:16 · 245 阅读 · 0 评论 -
贪心,优化(Sockets,cf 732e)
http://www.cnblogs.com/iRedBean/p/5975480.html像这种O(n^2)匹配的问题一般可以用优先队列,集合或者多重集合优化成O(nlogn)。贪心的思路很简单,先尝试匹配,然后每个socket添加一个adapter,继续,重复31次。最多加三十次就变成1了。这么贪心为什么对呢。添加adapter后的socket匹配潜力肯定是减弱了的转载 2016-10-19 20:06:07 · 502 阅读 · 2 评论 -
枚举,模拟(Too Much Money,cf Canada Cup 2016 E)
一开始想只用放某个大于等于所有硬币的硬币是最优。后来发现能出解但不一定是最优解。当时就是想,第一次取的硬币的大小一定是大于等于最大的硬币。那么我就枚举所有可能的取值,如果都可以被凑出来,那就说明无解。如果凑不出来了,那就取最小的那个。当时觉得如果第一步都能凑出来,那么以后也一定能凑出来。如果第一步都凑不出来,那也就没有以后了。事实上,如果你放大硬币,这个推论确实是对的。然而可能会存在某个小硬币原创 2016-10-23 10:46:19 · 459 阅读 · 0 评论 -
【2016-北京赛区网络赛-I】枚举,贪心,优先队列,优化(导弹,hihocoder 1391)
比赛时暴力枚举,TEL。然后尝试用滑动窗口优化,然后发现无法优化。赛后才知道可以用优先队列来优化。好可惜呀。代码#includeusing namespace std;typedef long long ll;ll TA,TB;ll x;ll N,M;struct dd{ ll t,v,d; ll st,ed; dd(ll a,原创 2016-09-27 12:37:25 · 380 阅读 · 0 评论 -
高效(防线,uva 1471)
参考 http://blog.csdn.net/L123012013048/article/details/45054857一开始用set弄,erase弄超时了。后半部分的方法十分不错。一方面思路用二分搜索代替了暴力枚举。另一方面,这种技巧有时能代替低效的set,大大提高效率,今后解题都可以参考。前面的滑窗也有许多小细节需要处理。#includeusi转载 2016-09-07 19:48:15 · 554 阅读 · 0 评论 -
贪心(Fabled Rooks,uva 11134)
一些参考 http://acm.lilingfei.com/uva-11134-fabled-rooks-%E4%BE%8B%E9%A2%988-4_67 http://blog.csdn.net/shuangde800/article/details/8653730行和列无关的意思是,本题可以拆成两个完全独立的子问题,分别是行和列的问题转载 2016-09-02 00:20:47 · 474 阅读 · 1 评论 -
二分,贪心(Copying Books,uva 714)
最大值尽量小,二分加判断可不可行。这个方法十分重要。判断方法用贪心。一些优化:二分的左边界为最大值,二分的右边界为和。判断时发现不可行立刻返回。字典序最小,从右往左贪心即可,因为若右边的多拿了左边的东西,那么左边就有机会拿更左边的东西。分组不能为空集,所以贪心到后面组不够了,那就直接一人一组。搞了很久,因为一些算法有问题,所以有死循环没发现。代码原创 2016-09-12 17:21:16 · 320 阅读 · 0 评论 -
贪心(Elegant Construction,HDU 5813)
很容易想到按ai排序。然后ai>i就不行。然后就往前面连,保证恰好能到达ai个点。看了官方题解就是往前a[i]个点都连边就好了。由于有向无环,所以不可能到达比a[i]大的点,而小于等于a[i]的点我们又全都到达了。我只想到了一个比较复杂的方法,算法错了,又改才对了。就是讨论,如果a[i]=a[i-1]+1,那就直接连到i-1如果a[i]=a[i-1],那就跟原创 2017-07-26 19:14:33 · 293 阅读 · 0 评论