Icefox的博客

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

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

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

2018-07-15 22:14:37

阅读数:142

评论数:0

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

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

2018-07-15 20:02:35

阅读数:91

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

阅读数:64

评论数:0

6.24NOI 模拟赛

A.小w、小j和小z 我可能是个傻子,两个人i,j相撞的要求就是 si<sj,ti>tj或者si>sj,ti<tjsi<sj,ti>tj或者si&...

2018-06-24 23:03:03

阅读数:36

评论数:0

luogu4713「语文」凑字数(dp+贪心+枚举)

考试时根本没看到这题(蒻 后来也只会42分的做法qaq 并没有想到如何处理K>1的情况 原来暴力枚举一下哪些部分得分为0就好了啊qaq 然后把其他的扣分都算在一起就好了,可以证明如果非法一定不优。 然后利用此题分数S只有200的特性 可以做到O(2kkSn)O(2...

2018-06-23 22:32:20

阅读数:33

评论数:0

luogu4714 「数学」约数个数和(组合数学+miller_rabin判素数)

luogu6月月赛E。 当时绝对是脑抽了 其实O(wK)O(wK)O(wK)的暴力递推还是可以写的呀… 令n=∏pqiin=∏piqin=\prod p_i^{q_i} 我们发现可以分开讨论每一个pqiipiqip_i^{q_i},最后乘起来就好了,且只跟次数q有关 设f[k][q]f[...

2018-06-23 17:43:10

阅读数:77

评论数:0

Wannafly挑战赛18

https://www.nowcoder.com/acm/contest/129#question A.序列(组合数学) -2和0.5一样多,且都为偶数,枚举一下具体个数就好了 O(n)O(n)O(n) 考时ZZ了,不会跳了过去…很久以后才A掉gg B.随机数(矩阵快速幂) 设f[i]...

2018-06-22 23:09:24

阅读数:50

评论数:0

uoj117 欧拉回路(输出欧拉回路模板)

欧拉图判定条件: 无向图: 连通且每个点的度数均为偶数。(可以有孤立点) 有向图: 连通且每个点的入度等于出度。(可以有孤立点) 输出回路: 套圈法,可以搜出没有公共边的若干子回路,并成一个就好了。于是可以用栈把搜到的圈(边)存下来即可。 需要优化一下邻接表(类似Dinic的当前弧优...

2018-06-20 22:58:27

阅读数:110

评论数:0

uoj236 【IOI2016】railroad(欧拉图+最小生成树)

首先我们对每一个速度建一个点,然后对于每一个路段(s,t),建边s->t。这样我们就是求可以在这张图中添加一些边,要求经过每条边恰好一次。 我们添加一条(inf,1)的边,这样就是要求把这张图变成欧拉图。 考虑这样一个区间[x,x+1][x,x+1][x,x+1] , 只...

2018-06-20 21:54:13

阅读数:150

评论数:0

【LGR-048 五周年庆贺】洛谷6月月赛

我居然忘了…忘了…20多分钟后才开qaq 然后就写不完啦!gg A 水题直接算 #include <bits/stdc++.h> using namespace std; #define l...

2018-06-18 23:20:58

阅读数:133

评论数:0

luoguT30208 太极剑(贪心)

某题的弱化版… 我觉得是挺神的,考场上只想出了线性规划然而不会写了x 首先我们有一个结论:我们可以把切割线分配到点上去,这样只要一条线段两边的点的权值和分别大于等于线段权值即可。 然后所有点的权值和+1/2就是答案下界,并可以证明这个下界是可以达到的。 因此问题转化成分配点权,使得总权值最...

2018-06-14 15:33:09

阅读数:150

评论数:0

ural1519 Formula 1(插头dp)

一个n*m的棋盘,有些格子是障碍,问存在多少条哈密顿回路。(n,m<=12) 基于连通性的状态压缩动态规划。cdq论文。 这题逐格递推,括号表示法,滚动数组+Hash表优化空间。 复杂度O(S∗n)O(S∗n)O(S*n) 2017.5.21第一次写这道题。 201...

2018-06-13 15:22:37

阅读数:62

评论数:0

loj2540「PKUWC2018」随机算法(状压dp+组合数学)

设f[i][S]表示答案集合S大小为i,不可选的点的状态为S的方案数。 考虑在答案集合中再加入一个j来转移,本来还剩x个点可以选,选了j以后少了y个点可以选,那么这y个点可以随便放在排列的这x个位置之中,方案数为AyxAxyA_x^y。 复杂度O(2nn)O(2nn)O(2^nn) #inc...

2018-06-07 12:11:30

阅读数:170

评论数:0

loj2537「PKUWC2018」Minimax(线段树合并)

因为叶子权值各不相同,我们考虑线段树合并,在merge时维护每个权值的概率。我们记gr为x的右子树中比我大的权值的概率和,我们合并时先做右子树,再做左子树。那么对于一个权值x的出现概率就是另一棵子树中比x大的权值的出现概率g*(1-p)+(1-g)*p。 复杂度O(nlogn)O(nlogn)O...

2018-06-07 11:16:38

阅读数:108

评论数:0

loj6432「PKUSC2018」真实排名(线段树+组合数学)

分i有没有被选讨论一下就好了qaq 写了个线段树果然垫底了qaq #include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3f #d...

2018-06-06 15:39:55

阅读数:181

评论数:0

poj2942 Knights of the Round Table(点双的性质+二分图染色)

首先我们建出补图,那么就是求这样的点的个数:不在任何一个>=3的奇环上。 我们搞出点双,如果点x,y不在一个点双内,那么他俩一定不在一个环上。 所以我们对每个点双分别讨论。 这里有一个结论:如果一个点双内存在一个奇环,那么这个点双内的每一个点都在一个奇环上。 大概口胡...

2018-06-01 16:54:46

阅读数:42

评论数:0

loj2587「APIO2018」铁人两项(圆方树+树形dp)

我们考虑暴力枚举起点和终点a,c,那么合法的b的就是a到c的所有简单路径的并。 我们搞出圆方树,圆点点权为-1,方点点权为点双大小,那么要求的就是树上圆点a到c的路径和。 所以答案就是圆方树上所有圆点两两之间的路径和。 考虑树形dp解决这个问题。 计算每一个点在多少条路径上即可。 复杂度...

2018-06-01 08:02:40

阅读数:185

评论数:0

uoj30【CF Round #278】Tourists(圆方树+树链剖分+可删除堆)

求一般图两点之间所有简单路径上的点权的最小值。 我们搞出圆方树,原图两点间的所有简单路径的并就对应了圆方树上两点间路径。圆点权值为原点点权,方点权值为这个点双的权值最小值。 树链剖分维护路径最小值即可。 但是这样修改一个点的点权时可能需要修改一堆方点,复杂度会爆炸。 于是一个小trick,...

2018-05-31 20:33:21

阅读数:103

评论数:0

poj1523 SPF(求割点及所在块个数)

一个割点所在块个数就是去掉这个点之后的连通块个数。 tarjan求割点并记录块数即可。 注意此题很坑,标号并不一定是连续的… #include <cstdio> #include <cstring&am...

2018-05-31 15:03:44

阅读数:39

评论数:0

spoj104 Highways(矩阵树定理)

Matrix-tree定理裸题。 对于一张无向图G,我们有度数矩阵D[G]D[G]D[G] dij={du[i],0,i=ji≠jdij={du[i],i=j0,i≠jd_{ij}= \begin{cases} du[i], &\text{$i=j$}\\ 0, &a...

2018-05-26 13:00:20

阅读数:44

评论数:0

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