贪心
gjghfd
这个作者很懒,什么都没留下…
展开
-
bzoj3037--贪心
题目大意:applepi手里有一本书《创世纪》,里面记录了这样一个故事……上帝手中有着N 种被称作“世界元素”的东西,现在他要把它们中的一部分投放到一个新的空间中去以建造世界。每种世界元素都可以限制另外一种世界元素,所以说上帝希望所有被投放的世界元素都有至少一个没有被投放的世界元素能够限制它,这样上帝就可以保持对世界的控制。由于那个著名的有关于上帝能不能制造一块连自己都不能举起的大石头的二律背反原创 2017-05-26 16:41:00 · 302 阅读 · 0 评论 -
codeforces802 A&&B Heidi and Library (easy&&medium)
题目大意:每天会有一个客人来图书馆,共n天,第i个客人要看的书是ai。 为了保证每个客人都能读到想要的书,你可以在任意时间去商店买书并放入图书馆或者从图书馆里丢掉几本书,图书馆里最多只能有k本书。问最少买多少本书?原创 2017-05-29 14:06:14 · 599 阅读 · 0 评论 -
bzoj2460 [ Beijing2011 ] -- 线性基+贪心
可以用拟阵证明按价值从大到小取一定是正确的,维护一个线性基判断异或和是否会变成00就可以了。原创 2017-07-06 17:26:27 · 319 阅读 · 0 评论 -
bzoj3105 [ CQOI2013 ] -- 博弈论+线性基+贪心
Nim游戏先手必败的条件是所有石子异或和为00。然后就和这题一样了。原创 2017-07-06 17:32:50 · 236 阅读 · 0 评论 -
codeforces822F Madness -- 贪心
显然一条路径只包含一条边是最优的。 令did_i表示点ii的度数,显然ii的值最小是2di{2\over d_i}。 考虑点ii。令tjt_j表示从第jj条边从ii开始的时间。那么使tjt_j与tj−1t_{j-1}差为2di{2\over d_i}一定是最优的。从根开始dfsdfs一次就可以了。原创 2017-07-09 18:33:23 · 454 阅读 · 0 评论 -
codeforces799E Aquarium decoration
题目大意:给定nn个数,有22个人,每个人有几个喜欢的数,要从中选恰好mm个数,使每个人都至少有kk个喜欢的数被选到。枚举选几个两个人都喜欢的数,然后贪心求答案就可以了。代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define N 200010#原创 2017-06-03 21:02:11 · 855 阅读 · 0 评论 -
[ 可并堆 贪心 ] [ Baltic2004 ] BZOJ1367
论文例题。 但论文中 ziz_i 是单调不减的。 只要将 tit_i 减去 ii ,这样相当于求出 ziz_i 后再加上 ii ,就是严格单调递增的了。#include<bits/stdc++.h>using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==原创 2017-12-14 19:28:47 · 254 阅读 · 0 评论 -
[ 贪心 ] [ ONTAK2015 ] BZOJ4245
先预处理出前缀异或值,然后从高到低枚举二进制每一位,求出可作为右端点的位置是否有 mm 个就好了。#include<bits/stdc++.h>using namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2原创 2018-01-03 20:02:03 · 155 阅读 · 0 评论 -
[ 树形DP 贪心 ] Codeforces958B2 Maximum Control (medium)
可以发现最优的选点方案一定包含直径的 222 个端点,而且选的一定是叶子节点。 把直径的一个端点作为根,那么所有方案都会选根。这样每次多选一个点都是一段从叶子向根的路径。记下所有路径,每次取最大值就好了。#include<bits/stdc++.h>using namespace std;const int N=100010;int k,n,m,x,y;int h[N],...原创 2018-04-17 13:45:56 · 285 阅读 · 0 评论