贪心
文章平均质量分 62
nlj1999
这个作者很懒,什么都没留下…
展开
-
1034: [ZJOI2008]泡泡堂BNB
贪心。。。。。强赢强,弱赢弱,实在不行就GG啊。比之前的田忌赛马简单多了,那题用贪心讨论到明年去。。。。所以还是果断DP。不过这题就好说多了。#include#include#include#includeusing namespace std;const int N=100000+5;int a[N],b[N],n;int work(int* A,int* B){原创 2015-12-18 21:21:17 · 440 阅读 · 0 评论 -
BZOJ 4567: [Scoi2016]背单词
显然第一种情况可以避免将每个串都看成树上的一个节点,父亲为它的后缀串中最长的那个这棵树可以通过每个串reverse后加入Trie树中,最后去掉Trie树的虚节点来获得于是问题变成了给树上每个点标号,使得每个点的标号减去它父亲的标号的和最小显然要按DFS序标号考虑相邻的兄弟节点u,v先u再v比先v再u的答案大siz[u]-siz[v]所以子节点按子树大小排序后依次标号原创 2016-05-23 19:21:57 · 555 阅读 · 1 评论 -
BZOJ 4524: [Cqoi2016]伪光滑数
和D1的K远点对类似的k优解求法首先找到一个集合使得当前最优解一定在其中然后每次找到最优解并把与它有关且(必定)劣于它的加到集合里去重复k-1次对于这道题显然一开始的集合就是pi^j,pi为质数且pi然后每次扩展就是把一个数中的其中一个质因数变小一点当然还要hash判重(hash表好像写得有问题QAQ跑得巨慢无比)#include#include#include原创 2016-05-20 12:39:27 · 476 阅读 · 0 评论 -
3105: [cqoi2013]新Nim游戏
14年论文题贪心+线性基搞一搞忘了开longlong一直WA好智障阿QAQ #include#include#include#include#includeusing namespace std;#define rep(i,l,r) for(int i=l;i<=r;i++)#define per(i,r,l) for(int i=r;i>=l;i--)#defin原创 2016-05-13 12:38:53 · 221 阅读 · 0 评论 -
BZOJ 4571: [Scoi2016]美味
区间最大异或对,显然用可持久化Trie嘛WTF???怎么轻易地就加了一个数呢好吧我们考虑把Trie的每个节点加上个值域,于是就变成了主席树啦于是从高位往低位贪心,每次找到该位异或为1时可选的区域,在主席树上找区域中是否存在值复杂度mlogwlogw#include#include#include#include#include#include#include#in原创 2016-05-24 20:06:30 · 716 阅读 · 0 评论 -
APIO2015 UOJ 110-112
#110. 【APIO2015】Bali Sculptures很像NOI2014的起床困难综合征首先每一位拆开来做从高位到低位贪心,看每一位能不能为0NN#include#include#include#includeusing namespace std;const int inf=1e9;#define rep(i,l,r) for(int i=l;i<=r原创 2016-04-27 19:37:45 · 651 阅读 · 0 评论 -
BZOJ 1200: [HNOI2005]木梳
虐哭了QAQ首先简单分析一下会发现将最终的序列游程编码之后不会出现连续的长度为3的递增或递减数列,然后就弃疗了。于是只好去翻题解……卧槽这贪心是什么鬼。看了半天证明感觉有点方,于是决定把代码敲(抄)一遍就算了。其实我觉得既然复杂度是n*c^2*d^2,不如把c和d设大一点,反正也证不出来。#include#include#includeusing namespace st原创 2016-03-27 15:16:12 · 935 阅读 · 0 评论 -
SGU 207. Robbers
不是很懂你们经济学边际效应递减……即使你是抢劫犯也要学点经济学:)好吧其实是数学归纳所以数学好的都去帮别人分钱了?#include#include#include#includeusing namespace std;const int N=1000+5;int X[N],K[N];struct hn{ double d; int i; bool operato原创 2016-03-25 15:31:18 · 252 阅读 · 0 评论 -
SPOJ 699 HKNAP - Huge Knap Sack
部分贪心解决大背包问题先利用数据特殊性将物品压缩成18个,第i个体积是i,重量为w[i],这里w[i]取体积为i的原物品的最大值。然后找到性价比最大的wi,vi。考虑任意一个物品p,若取q个该物品且q>=vi,即q=vi+x(x>=0),则总重量为w[p]*(vi+x)w[p]*(vi+x)=w[p]*vi+w[p]*x所以取limit=vi*18,即每个物品都取18个,则容量原创 2016-03-23 11:04:36 · 419 阅读 · 0 评论 -
BZOJ 2328: [HNOI2011]赛车游戏
Hint里的没有数据是肿么回事,仿佛是在刻意地逗我笑首先这是个贪心题我们考虑首先让耗油量尽可能地低上坡段是必须耗油的,速度先置为0下坡段速度可以提升一下,达到耗油为0即可平底自然速度为0然后找到当前速度最小的路段,提升它的速度与次小的平齐,注意不要超过限制直到提升不了为止,最后结算一下如果发现最小和次小速度相等就把他们合并了#include#include#原创 2016-04-05 11:18:18 · 560 阅读 · 0 评论 -
BZOJ 1505: [NOI2004]小H的小屋
05年的论文题优化很玄学。。。。。。贡献了俩WA,成功地拉低了这题的AC率(这题AC率好高啊)#include#include#includeusing namespace std;const double inf=1e9;double k1,k2;double sqr(double x){return x*x;}int a[4];void calc(int m,int原创 2016-03-09 13:49:45 · 669 阅读 · 0 评论 -
poj 3483 Loan Scheduling
接着上一题的例题。带权区间,区间长度为1,每个点可被覆盖l次,区间右端点不能超过di。由于区间长度的特殊性,可以用并查集维护(不然只能用线段树了)记录每个点的测度,当测度=l时将该点与该点该点前面的点合并。于是用并查集维护点的集合,代表元取编号最小的点。每次加区间的时候将区间覆盖到di所在集合的代表元上,然后按上述维护。#include#include#include原创 2016-03-20 13:05:12 · 513 阅读 · 0 评论 -
COGS 1584. [CTSC2007]挂缀
08年的论文里的方法看了半天觉得好奇怪算法2各种看不懂。然后发现算法1好像不用平衡树哎。不如把算法1的动规改成贪心,然后用堆维护一下就好了。#include#include#include#include#includeusing namespace std;const int N=200000+5;typedef long long ll;struct drct{原创 2016-03-20 12:41:09 · 282 阅读 · 0 评论 -
POI 2004 Cave
说好的动态规划呢,明明是贪心题(摔)拿到这题首先我们模拟一下。哎?点分治?好像啊过了样例?交上去试试?呵呵呵呵呵呵呵呵呵不如来贪心一下,每次重心有多个可以取的时候,取度数最大的那个……好像有道理我有点方了。不过至少我们得到了一个上界,答案不会超过[log(n)]+1。然后呢……然后就不会做了QAQ只好去Orz神犇的题解->OrzOrzOr原创 2016-03-16 21:00:29 · 425 阅读 · 0 评论 -
1193: [HNOI2006]马步距离
远距离贪心,近距离BFS。证明什么的布吉岛。Discuss里面看到VFK用的模拟退火,吓Cry了。#include#include#include#includeusing namespace std;const int dx[8]={1,1,-1,-1,2,2,-2,-2};const int dy[8]={2,-2,2,-2,1,-1,1,-1};bool vis[1原创 2015-12-23 21:29:36 · 559 阅读 · 0 评论 -
BZOJ 4004: [JLOI2015]装备购买
MD这题有毒拟阵+线性基什么的按照14年论文的方法易证一下然后高斯消元搞一搞就WA了(垃圾数据坑精度)#include#include#include#include#include#include#includeusing namespace std;#define rep(i,l,r) for(int i=l;i<=r;i++)#define per(i,r,l)原创 2016-06-17 19:54:19 · 637 阅读 · 0 评论