雯舞

Love three things int he world -- Manchery

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

[树形依赖多重背包] BZOJ 4910 [Sdoi2017] 苹果树

首先解决依赖背包 如果是0/1背包,按照后序遍历dp,根据选或不选决策 现在是多重背包,那么这个点只留一个,剩下的变成一个新点挂上去,这样仍然满足依赖关系, 转移的时候多重背包用单调对列优化可以发现如果除了最长的一条链,剩余最多KK个 因为权值为正 那么最长链必然连到叶子,剩余必然取KK个...

2017-06-09 14:36:53

阅读数:815

评论数:0

[动态最小生成树 CDQ分治] SnackDown 2017 Online Elimination Round #GQUERY Game Revisited

给每条边的权值赋为编号 那么就相当于一个做kruskal的过程 也就是一个最小生成树的过程 跟BZOJ 2001 [Hnoi2010]City 城市建设一样? 被阿爷教导了 多年前的模板又臭又长#include<cstdio> #include<cstdlib> #i...

2017-06-06 15:15:58

阅读数:383

评论数:0

[平衡树 模拟] SnackDown 2017 Online Elimination Round #WIQ Waiting in a Queue

直接模拟下这个队列就好了 下一个处理的事件应该是第一个bi−i≤t−1b_i-i\le t-1的人 平衡树维护bi−ib_i-i#include<cstdio> #include<cstdlib> #include<algorithm> #include&...

2017-06-06 15:11:37

阅读数:279

评论数:0

[杂题] SnackDown 2017 Online Elimination Round #PREFIXOR Prefix XOR

考虑sr xor si−1≤sr+1 xor si−1s_r\ \text{xor} \ s_{i-1}\le s_{r+1}\ \text{xor} \ s_{i-1} 相当于对si−1s_{i-1}第k位有一个限制 k是srs_{r}和sr+1s_{r+1}的LCP后一位然后就能很快算...

2017-06-06 15:08:29

阅读数:334

评论数:0

[Hash] 2017 计蒜之道 初赛 第五场 UCloud 的安全秘钥

判断两个可重集是否相同,给每个元素一个随机的 64 位无符号整数权值,然后全部加起来作为集合的 Hash 值。那么一个子串的 Hash 值可以简单地由前缀和作差得到,每次检验的复杂度为O(1)。 其实只要一个观察 询问中不同的长度只有O(l√en)O(\sqrt len)种 map竟然T了 sm...

2017-06-06 15:02:58

阅读数:343

评论数:0

[最大密度子图] 2017 计蒜之道 初赛 第三场 腾讯狼人杀

最大密度子图的建图 详见论文 这个东西是支持强制选的#include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #define cl(x) memset(x,0,...

2017-06-05 07:52:43

阅读数:375

评论数:0

[IMO原题] BZOJ 4915 简单的数字题

第52届IMO试题解答 #include<iostream> #include<algorithm> using namespace std;int main(){ long long l,r; cin>>l>>r; cout&...

2017-06-01 21:28:24

阅读数:450

评论数:0

[杜教筛] BZOJ 4916 神犇和蒟蒻

第一问玩玩你的吧 第二问直接杜教筛 S(n)=n∗(n+1)∗(2n+1)6−∑i=2ni∗S(⌊ni⌋)S(n)={n*(n+1)*(2n+1)\over 6}-\sum _{i=2}^n i*S(\lfloor{n\over i} \rfloor)#include<cstdio>...

2017-06-01 21:13:06

阅读数:323

评论数:0

[线段树] Codeforces 811E Round #416 (Div. 2) E. Vladik and Entertaining Flags

线段树 直接维护一段区间的答案 以及左右边界之间的连通性 然后合并的时候 根据中线并查集合并下 这么大常数竟然过了#include<cstdio> #include<cstdlib> #include<algorithm> using namespace ...

2017-06-01 20:56:56

阅读数:234

评论数:0

[特殊的一般图最大匹配] BZOJ 4874 筐子放球

我们把能够放在一个桶里的球连边 就是个最大匹配 这种图比较特殊 其实是比较老的模型了 在算法合集之《数据关系的简化》就有讲过一个连通块 必然能够达到⌊n2⌋\lfloor {n\over 2}\rfloor 这个上界 具体我们把一个连通块拎成一棵树 其中左儿子和自己同名 右儿子和自己同姓 ...

2017-06-01 20:52:56

阅读数:259

评论数:0

[DP套DP] UOJ #141 【UER #4】量子态的棋盘

预先DP一遍则每个格子最多留一个球,然后对轮廓线的状态装压 如果定义一个点的状态数不超过SS 那么据题解说SS大概是5×1055\times 10^5 复杂度O(nmS)O(nmS) 接下来是卡常时刻 我先是把轮廓线上的球数转化成一个80进制数 然后和当前已经入袋的球数hash在一起 ha...

2017-05-31 20:26:48

阅读数:341

评论数:0

[DP套DP] SRM 591 div1 StringPath

记录f(i,j)是不是A/B的前缀,需要保留前m个dp值 其实就是轮廓线 复杂度O(nm∗4m)O(nm*4^{m})// BEGIN CUT HERE #include<conio.h> #include<sstream> // END CUT HERE #i...

2017-05-31 20:22:52

阅读数:156

评论数:0

[DP套DP] BZOJ 3864 Hero meet devil

我们令fi,jf_{i,j}表示TiT_i和SjS_j的LCS 然后我们发现 fi,j−fi,j−1∈[0,1]f_{i,j}-f_{i,j-1} \in [0,1] 这个东西可以状压 预处理所有转移 然后DP#include<cstdio> #include<cstdlib...

2017-05-31 20:20:15

阅读数:213

评论数:0

[分块] BZOJ 4908 [BeiJing2017]开车

我们在车的地方加一 在加油站减一 这样答案就是一个类似绝对值的区间和的东西 这个东西不好搞 分块 对于整块加减 我们在块上再维护一个表示0的指针 对于小块 暴力基数排序重构 复杂度O(nn√)O(n\sqrt n)#include<cstdio> #include<cst...

2017-05-31 20:17:41

阅读数:631

评论数:0

[Floyd 一般图最小权完美匹配] 算法马拉松25 F River?Rever!

首先把一个区间翻转的最小代价肯定不是题目给出的那个代价 我们先跑一通floyd就能搞出来最小代价 然后呢 把所有奇偶性变化的位置 连成一个完全图 跑最小权完美匹配就好了 不会带花树 拷了个随机匹配的板子#include<bits/stdc++.h> using namespace...

2017-05-31 08:47:30

阅读数:516

评论数:0

[搜索 剪枝] 算法马拉松25 E BigPrime

减掉所有只有小质数的数的个数就好了 大概就那么几千万个 首先包含大于根号b的质数只能有一个你可以直接算出来 然后再搜 怎么写都能三四秒出 然后你还要些剪枝 我是把大于三次根号b的质数瞎讨论一波 因为最多出现两个#include<cstdio> #include<cstd...

2017-05-31 08:38:30

阅读数:294

评论数:0

[期望与方差 Lucas定理] 算法马拉松25 D 小Q的集合

大概是 ∑Cin∗2∗ik∗(ik−(n−i)k)modm\sum C_n^i*2*i^k*(i^k-(n-i)^k) \bmod m 后面那个东西模mm有循环节 同一组的组合数的和用lucas定理也能化成组合数乘上2的幂#include<cstdio> #include<cs...

2017-05-31 08:36:12

阅读数:615

评论数:0

[二进制分组 线段树 || 点分治 分治] UOJ #191 【集训队互测2016】Unknown

详见lzz的集训队论文二进制分组做法二进制分组是在线段树的结构上做的 方便区间查询 至于删除 采用延迟重构的思想 每一层只有最后一个区间是萎的 我们需要递归下去 询问还是O(logn)O(\log n)个节点 重构复杂度势能分析下O(nlogn)O(n\log n) 只有上凸包是有效的 合并的...

2017-05-28 11:15:45

阅读数:645

评论数:1

[历史最值问题] UOJ #164 【清华集训2015】V

详见吉丽的集训队论文吧我们发现修改操作可以变为这样一个形式S:x=max(x+A,B)S:x=max(x+A,B) 这个标记是可以合并的 就可以求当前值了 现在还要历史最值 我们就再加一个标记SSSS表示历史最大的标记 因为这个形式是一条折线 所以历史最大也是可以合并的 具体的我们两段时间有...

2017-05-28 11:06:13

阅读数:366

评论数:0

[Segment tree Beats! || 分块] Codeforces 793F Tinkoff Challenge - Elimination Round F. Julia the snail

我们用fif_i表示左边界是ii的答案 一条线段[a,b][a,b]对答案的影响是 f1f_1到flf_l中大于等于aa的都跟bb取max 这个可以用线段树科技做 复杂度证明跟区间最值操作的势能分析应该差不多#include<cstdio> #include<cstdlib&g...

2017-05-28 10:59:49

阅读数:659

评论数:0

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