Icefox的博客

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

poj2318 TOYS(计算几何)

那些年不想写的计算几何,总有一天要还。 直接枚举点,枚举四边形即可,只要用叉乘判断点是否在两条线段中间即可。 O(nm)O(nm)O(nm) #include <cstdio> #include <cstring> #include &...

2019-06-28 17:23:38

阅读数 11

评论数 0

bzoj1791 [Ioi2008]Island 岛屿(求基环树直径,单调队列)

给定一个基环树森林,求每一棵基环树的直径,他们的和就是答案。 基环树的直径:先找到环,然后直径只有可能是 1.环上某一个点的子树的直径 2.环上某两个点之间的距离加上他们各自子树中最深的点的深度。 然后搜一搜就好了,情况2可以单调队列一下。 O(n)O(n)O(n) 我写的太丑了,bzoj跑不过去...

2019-06-28 11:52:22

阅读数 10

评论数 0

bzoj5100 [POI2018]Plan metra(树+构造)

构造题,细节较多。 第一次WA:没有判1-n的链上如果d[1][i]相同的话是不合法的。 第二次WA:没有判1-n距离为0的情况是不合法的。 #include <bits/stdc++.h> using namespace std; #define ll long lo...

2019-06-24 17:34:49

阅读数 31

评论数 0

bzoj4289 PA2012 Tax(优化建图+Dijkstra)

首先我们考虑把无向图变成有向图,然后化边为点,新图中两点之间距离为边权的max,然后新建源点S向1的出边化成的点连边,边权为出边边权,新建汇点T,n的入边化成的点向T连边,边权为入边边权。然后S到T的最短路就是答案。这样最坏是O(m2)O(m^2)O(m2)的边。 考虑优化建图:因为max(a,b...

2019-06-24 16:22:44

阅读数 9

评论数 0

bzoj1098 [POI2007]办公楼biu(图论+list)

给出补图,求原图的连通块个数及大小。 我们直接bfs原图,每次把补图中的边(也就是原图完全图中被删掉的边)通向的点打上标记,这样没被标记的点就是与此点连通的,都在一个连通块内,用链表优化一下,支持O(1)O(1)O(1)插入删除。 每个点在链表中只会被删一次,所以这部分复杂度是O(n)O(n)O(...

2019-06-22 14:21:54

阅读数 23

评论数 0

Codeforces Round #568 (Div. 2)

老年选手水平退化严重,花样WA题。 A.Ropewalkers 贪心 #include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3f #define N ...

2019-06-20 22:46:29

阅读数 30

评论数 0

退役记。

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

2018-07-28 20:08:48

阅读数 857

评论数 1

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

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

2018-07-15 22:14:37

阅读数 268

评论数 0

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

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

2018-07-15 20:02:35

阅读数 172

评论数 0

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

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

2018-07-14 21:31:05

阅读数 138

评论数 0

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

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

2018-07-14 18:26:36

阅读数 1400

评论数 0

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

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

2018-07-13 23:27:23

阅读数 112

评论数 0

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

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

2018-07-13 21:21:51

阅读数 141

评论数 0

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

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

2018-07-13 20:09:12

阅读数 96

评论数 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

阅读数 108

评论数 0

CF547D Mike and Fish(欧拉图)

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

2018-07-12 14:41:02

阅读数 168

评论数 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

阅读数 190

评论数 0

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

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

2018-07-09 22:38:30

阅读数 143

评论数 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

阅读数 400

评论数 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

阅读数 79

评论数 0

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