Icefox的博客

生活不止眼前的苟且,还有诗和远方。

排序:
默认
按更新时间
按访问量

退役记。

终于…还是退役了吧。 拖了很久却写不出那退役记。 真的很想把这一年的经历都记下来,怕自己日后忘记,却遗憾自己没有西酱那样的文笔。 简单说来,从去年的noip爆炸开始,大概就已经奠定了这结局。只是真的两手空空,没有一点点的降分回来了,还是让自己有些不敢相信。 省选之后,感觉自己突然不知道该喜...

2018-07-28 20:08:48

阅读数:216

评论数:1

uoj217【UNR #1】奇怪的线段树(优化建图+最小流)

官方题解:http://c-sunshine.blog.uoj.ac/blog/1860 首先你需要发现只要覆盖了“自己是黑色节点,且子树内没有其他黑色节点了的点”即可。然后你每次覆盖的一定是一段连续的右儿子+一段连续的左儿子。而且这样是一一对应的。然后我们可以对每个点往可能的后继连边,这样就得...

2018-07-15 22:14:37

阅读数:74

评论数:0

uoj207 共价大爷游长沙(lct+Hash)

考虑我们给S中的每条路径一个权值,然后对这段路径异或上这个值。 那么最后询问的那条边如果权值等于S集合的异或和那么就说它被所有路径经过了。这样的正确性是很高的。 然后考虑新加入一条边,就会出现一个环,然后肯定是在这个环上删去一条边,假设是x,y那么在新的树上x->y的路径...

2018-07-15 20:02:35

阅读数:51

评论数:0

bzoj3600 没有人的算术(替罪羊树动态标号+线段树)

最大值线段树维护即可。 问题就是一个动态标号。 可以用重量平衡树–替罪羊树来做。 复杂度O(mlogn+mlogm)O(mlogn+mlogm)O(mlogn+mlogm) #include <bits/stdc++.h> using names...

2018-07-14 21:31:05

阅读数:44

评论数:0

bzoj4372 烁烁的游戏(点分治+线段树)

无限CE…一丝丝怀疑人生qaq 考虑点分树维护这个东西。每个节点x开一颗线段树,每个叶子节点i记录距离x距离为i的点加了多少。每次修改/询问在点分树上跳父亲就好了。然后还要容斥一下多加的部分,因此需要每个点再开一颗线段树表示到fa[x]距离为i的要减掉多少。 可以吧前缀加单点询问变成单点加后缀...

2018-07-14 18:26:36

阅读数:971

评论数:0

bzoj4558 [JLoi2016]方(容斥原理,计数,Hash)

这容斥真是写的我心态爆炸… 考虑用至少0个坏点的-至少1个坏点的+至少两个坏点的-至少三个坏点的+至少四个坏点的。 我们发现对于斜着的正方形,可以直接在框住它的大正方形处计数,边长为i的大正方形内就有i个正方形。 且我们发现每个点出现且仅出现在一个正方形上。因此对于至少一个坏点的正方形,我们...

2018-07-13 23:27:23

阅读数:23

评论数:0

bzoj4003 [JLOI2015]城池攻占(左偏树)

左偏树就是满足堆性质,且满足左子树深度不小于右子树深度的二叉树。 这样右子树深度是O(logn)O(logn)O(logn)的。 可以用来做可合并堆。 复杂度O(nlogn)O(nlogn)O(nlogn) 此题就是裸题啦,维护一个乘法标记和加法标记即可。因为乘的是一个正数,因此大小关系不...

2018-07-13 21:21:51

阅读数:43

评论数:0

bzoj3083 遥远的国度(树链剖分+换根)

树链剖分基本操作,换根其实就是把dfs序列分裂,倍增找一下当前rt到询问点x的儿子,把这一段区间去掉即可。 #include <bits/stdc++.h> using namespace std; #define ll long long #defi...

2018-07-13 20:09:12

阅读数:41

评论数:0

【UNR #3】Day1

A(70) #include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3f #define N 200010 inlin...

2018-07-13 16:31:01

阅读数:56

评论数:0

CF547D Mike and Fish(欧拉图)

考虑行列建点,每个点变成边。 如果是欧拉图,那么每个点的入边=出边,考虑每一个行点,把入边都染成r,出边都染成b那么就一样多了。 但是有可能一开始不是个欧拉图,我们可以对度数为奇数的点两两配对(一定有偶数个),然后就一定是个欧拉图了。跑无向图输出欧拉回路即可。 复杂度O(n)O(n)O(n)...

2018-07-12 14:41:02

阅读数:42

评论数:0

CF367E Sereja and Intervals(dp,计数)

因为不能包含,所以一定没有相同的区间,我们可以先不考虑顺序,求出可能的方案数,然后乘上n!就是答案。 我们考虑按1~m的顺序枚举每一个数,由于不能包含,所以一个数上最多一个左区间和最多一个右区间,我们直接枚举这4种情况即可。因此f[i][j][k]f[i][j][k]f[i][j][k],表示考...

2018-07-12 14:05:40

阅读数:31

评论数:0

CF453E Little Pony and Lord Tirek(线段树+二分)

考虑如果一个区间在同一时刻被清过零,怎么做。 我们可以把这个区间中的点按生成满能量的时间从小到大排序,然后用生长了的时间去二分。一定是前面一段都是满能量,可以前缀和算,后面一段也可以r的后缀和×生长时间算。 我们线段树维护一下这个东西。 如果区间内有未清过零的点打标记-2. 如果一个区间被...

2018-07-09 22:38:30

阅读数:50

评论数:0

bzoj4850 [Jsoi2016]灯塔(决策单调性)

同bzoj2216 #include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3f #define N 500010 inline ch...

2018-07-07 21:59:11

阅读数:295

评论数:0

Codeforces Round#495

A #include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3f #define N 100010 inline ...

2018-07-06 23:57:01

阅读数:40

评论数:0

bzoj4061 [Cerc2012]Farm and factory(贪心+Dijkstra+切比雪夫距离)

记新首都为x点,我们对于每一个原来的点u都需要满足 dis[u][x]+dis[x][1]>=dis0[u][1],dis[u][x]+dis[x][2]>=dis0[u][2]dis[u][x]+dis[x][1]>=dis0[...

2018-07-05 23:40:55

阅读数:57

评论数:0

bzoj1563 [NOI2009]诗人小G(dp+决策单调性+二分)

首先有很显然的O(n2)O(n2)O(n^2)dp f[i]=min{f[j]+|s[i]−s[j]+i−j−1−L|p}f[i]=min{f[j]+|s[i]−s[j]+i−j−1−L|p}f[i]=min\{f[j]+|s[i]-s[j]+i-j-1-L|^p\} 30分。 然后考虑p=...

2018-07-03 21:29:57

阅读数:37

评论数:0

bzoj3163 [Heoi2013]Eden的新背包问题(分治+背包dp)

每次询问去掉物品i之后,j的钱最多可以买多大价值的东西。 我们可以分治[l,r]表示l~r的物品不买的背包数组。然后递归处理[l,mid]时把[mid+1,r]的物品转移进来,递归处理[mid+1,r]时把[l,mid]的物品转移进来。 转移的时候就是一个多重背包,可以单调队列优化。 复杂度...

2018-07-03 17:01:29

阅读数:48

评论数:0

bzoj1531 [POI2005]Bank notes(单调队列优化多重背包)

单调队列优化多重背包的板子。 我们朴素的多重背包做法是O(m∑c)O(m∑c)O(m\sum c)的 可以用二进制优化成O(m∑logc)O(m∑logc)O(m\sum logc) 更进一步的,我们可以用单调队列优化成O(nm)O(nm)O(nm) 考虑转移方程 f[j]=max{f[...

2018-07-03 16:40:08

阅读数:76

评论数:0

bzoj2726 [SDOI2012]任务安排(cdq分治+斜率优化)

我们显然有n^2 dp f[i]=min{f[j]+(S+t[i]−t[j])∗w[j]}f[i]=min{f[j]+(S+t[i]−t[j])∗w[j]}f[i]=min\{f[j]+(S+t[i]-t[j])*w[j]\} 其中t[i]=∑j=1iT[i],w[i]=∑j=i+1nF[j]...

2018-07-03 12:30:11

阅读数:49

评论数:0

bzoj2739 最远点(凸包+决策单调性+分治)

给定一个凸包,询问每个点距离最远的点的标号。 我们按逆时针考虑每一个点i,距离i最远的点j也是在逆时针转的。 因此我们可以把这个凸包拆成链,(把点再复制一次),每个点i合法的点的区间为[i,i+n]。其余点到i的距离为-inf。这样我们就有决策单调性了,随着i的增大j也是单增的。因此我们可以直...

2018-07-02 23:05:53

阅读数:48

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭