![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
ccx20060313
这个作者很懒,什么都没留下…
展开
-
luoguP1525关押罪犯
解决方案: 1.按照冲突从大到小排序 2.优先保证最大冲突不发生(对,所以是贪心) 3.开一个并查集,维护必须在同一个监狱中和必须不在同一个监狱中的罪犯 4.等等,两个并查集 5.所以要有2倍的人 6.x变成x和x+n 7.x-y+n:x和y必须不在一起 8.x-y:x和y必须在一起 9.开始处理 10.假设目前处理到x和y 11.原创 2017-11-25 20:34:03 · 164 阅读 · 0 评论 -
luoguP1090合并果子
解决方案: 1.一看就知道最方便的是贪心(动归也行) 2.每次调最小的两个合并(不要问证明) 3.所以用优先队列,懒得手打(P党www) 4.小根堆和大根堆都差不多,选一个用吧 5.AC 奉上代码 #include<iostream> #include<cstdlib> #include<queue> using namespace std; pr...原创 2017-11-28 12:37:12 · 125 阅读 · 0 评论 -
树的重心(默认已会定义及存储)
先给代码 #include const int N=1000010; const int inf=0x7f7f7f7f; using namespace std; int f[N],size[N],n,head[N],tot; int rt[N],sum,cnt=1; struct Edge{int u,v,next;}G[N inline void addedge(int u,i原创 2017-11-25 19:49:06 · 159 阅读 · 0 评论