贪心
文章平均质量分 71
BraketBN
这个作者很懒,什么都没留下…
展开
-
【POJ3262】Protecting the Flowers【贪心】
样例就是很直观的贪心...但是直接按D再T的简单排序就WA了。正确姿势如下:考虑两头牛a和b,并且b的下标比a大,时间为Ta、Tb,每分钟吃的花为Da,Db。若先a再b,则贡献为:W1 = Db * Ta * 2若先b再a,则贡献为:W2 = Da * Tb * 2要使第二种方案最优,则W2 Da * Tb 这样排序下来就得到了拿走牛的顺序。原创 2016-02-10 08:53:51 · 492 阅读 · 0 评论 -
【BZOJ1664】[Usaco2006 Open]County Fair Events 参加节日庆祝【线段覆盖】【贪心】
【题目链接】怎么选到了这么水的题.../* Telekinetic Forest Guard */#include #include #include using namespace std;const int maxn = 10005;int n;struct _data { int l, r; bool operator < (const _da原创 2016-05-31 18:45:34 · 911 阅读 · 0 评论 -
【BZOJ1692】[Usaco2007 Dec]队列变换【后缀数组】【贪心】
【题目链接】很容易发现是贪心,问题在于如果两个字符相等时我们要继续向下比较,这样最坏是O(n^2)的,可以通过BZOJ1640。然后我们就需要一个快速比较字典序的工具了,后缀数组可以。好久没敲,板都快忘了。/* Telekinetic Forest Guard */#include #include #include using namespace std原创 2016-05-16 17:13:34 · 447 阅读 · 0 评论 -
【BZOJ3671】[Noi2014]随机数生成器【模拟】【贪心】【卡空间】
【题目链接】一眼模拟+贪心,算了算复杂度,好像不太对呀...大概是O(n * m + Q + n + m + 1 + n * m)。。嘿嘿嘿。/* Telekinetic Forest Guard */#include #include #include using namespace std;typedef long long LL;const int原创 2016-05-11 17:16:47 · 535 阅读 · 0 评论 -
【BZOJ3874】[Ahoi2014]宅男计划【贪心】【模拟退火 / 三分法】
【题目链接】可以发现,购买方案是有周期的,周期个数即为购买次数。对于固定的购买次数,我们可以贪心的求出最多存活多少天。但是我们并不知道要购买多少次,反正是个函数最值问题,直接模拟退火!看了题解之后,发现购买次数与答案为单峰函数关系,那么可以换成三分法了。。贪心的话,先预处理出每次要购买的食物(因为有些食物一定不会去买的),然后在保质期内,贪心的全买这种食物即可。原创 2016-05-11 10:10:06 · 1721 阅读 · 0 评论 -
【BZOJ3143】[Hnoi2013]游走【高斯消元】【期望DP】【贪心】
【题目链接】比较经典的模型。先高斯消元求出经过每个点的期望次数,每条边经过的期望次数为两个端点经过的期望次数除以各自的度数。然后按照经过次数贪心编号。注意走到n点之后不会再继续走了。/* Telekinetic Forest Guard */#include #include #include #include using namespace std;typ原创 2016-05-24 10:44:46 · 549 阅读 · 0 评论 -
【BZOJ4198】[Noi2015]荷马史诗【k叉Huffman树】【贪心】
【题目链接】学习一发NOIP初赛知识。/* Pigonometry */#include #include #include using namespace std;typedef long long LL;int n, k, top;struct _data { LL w, h; bool operator < (const _data &x) const原创 2016-04-15 15:21:36 · 627 阅读 · 0 评论 -
【Codeforces613B】Skills【二分】【枚举】【贪心】
题意:有n个数,可以将其中一个数字加一,最多操作m次。给出最大值A,给出cf,cm。设等于A的数的个数为k,最小值为min,那么答案为k * cf + min * cm。求最大的答案,并输出最后的n个数。排序,从大的一端枚举将多少数变为A,二分最小值,然后在小的一端二分查找可以使多少数变为最小值,更新答案。懵逼,二分写搓了真容易被卡。/* Footprint原创 2016-03-10 22:22:35 · 959 阅读 · 0 评论 -
【BZOJ1696】[Usaco2007 Feb]Building A New Barn新牛舍【中位数】【绝对值不等式】【贪心】
【题目链接】经典中位数排序。分奇偶讨论。(1)奇,取最中间的点,如果上面无牛,直接算;如果有牛,那么取周围四个点,算。(2)偶,取中间两个点,分别记为(x, y) (xx, yy),那么最短距离确定了,点数为(xx - x + 1) * (yy - y + 1) - 内部的牛的个数/* Pigonometry */#include #include using原创 2016-04-06 08:23:41 · 607 阅读 · 0 评论 -
【SPOJ-AGGRCOW】【BZOJ1734】【POJ2456】Aggressive cows【二分】【贪心】
题意:n个房间,c头牛,将这c头牛分配进房间,使得牛之间的最小距离最大。经典二分。二分答案,枚举房间。如果房间距离大于答案,那么计数器加一。如果最后计数器不小于c,说明答案应该更大,否则更小。#include #include using namespace std;const int maxn = 100005;int n, m, pos[m原创 2016-02-25 14:42:40 · 657 阅读 · 0 评论 -
【BZOJ1034】[ZJOI2008]泡泡堂BNB【贪心】【田忌赛马】
田忌赛马贪心.../* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 100005;int n, A[maxn], B[maxn];inline int iread() { int f = 1, x = 0; char ch原创 2016-03-09 22:02:03 · 487 阅读 · 0 评论 -
【SPOJ-KNJIGE】KNJIGE【思维】【贪心?】
特别有趣的题...已知一个1到n的排列,每次可以把其中一个数放到最前面,问至少经过多少次操作,可以使这个排列变为升序。我们可以发现,处于原排列的一段 (1)以n结尾 (2)大小相邻(可以不连续)的子序列,是没有必要去操作的。比如1 3 2 4 5中,可以找到3 4 5这个子序列。我们通过操作其他的数字,上面这个例子里就是1和2,达到最终排序的效果。显然一原创 2016-02-19 12:49:28 · 414 阅读 · 0 评论 -
【SPOJ-GSHOP】Rama and Friends【贪心】【细节】
题意:给出n个非严格递增的整数(可能有负数),必须操作k次,每次可以把其中一个数变为它的相反数,使得最终的数列和最大。输出这个最大和。考验如何出坑数据卡自己的程序...#include const int maxn = 105;int n, k, num[maxn];inline int iread() { int f = 1, x = 0; char c原创 2016-02-20 11:38:36 · 807 阅读 · 2 评论 -
【BZOJ1907】树的路径覆盖【贪心】
【题目链接】清空时候忘把边清空了= =RE无数发另外计算的时候还得算根节点...【ydc的题解】/* Think Thank Thunk */#include #include #include using namespace std;const int maxn = 10005;int n, head[maxn], cnt, q[maxn], dp[ma原创 2016-07-12 08:04:00 · 662 阅读 · 0 评论