CE玩家

人生最大的快乐,就是做别人说你做不到的事。

[DP] BZOJ4321. queue2

fi,j,kf_{i,j,k} 表示由前 ii 个人组成,有 jj 对人是相邻的,ii 与 i−1i-1 是否相邻DP的话直接分类讨论转移就行了#include <cstdio> #include <iostream> #include <algorithm>...

2017-10-31 20:29:10

阅读数:215

评论数:0

[容斥] Topcoder SRM div1-3 12004. SetAndSet

把所有数取反,转换成分成两个集合,集合或值相同。容斥一下每次枚举哪些位不满足条件,用并查集维护一下要在同一个集合的联通块就好了#include <cstdio> #include <iostream> #include <algorithm> #include...

2017-10-31 17:19:05

阅读数:150

评论数:0

[随机] UOJ#79. 一般图最大(随机)匹配

不会带花树 学一发随机匹配骗点分#include <cstdio> #include <iostream> #include <algorithm> #include <vector> #include <cstring>using n...

2017-10-31 12:34:58

阅读数:154

评论数:0

[DP] BalkanOI 2016. Lefkaritika

题意大概是有求多少个不包含关键点的边长为整数的正方形。转化一下就是求对于每个点 (x,y)(x,y) ,以它为左上角的不包括关键点的正方形的边长最大值,令为 f(x,y)f(x,y)答案就是 ∑f(x,y)\sum f(x,y)考虑对于每条对角线上的点单独处理设当前点为 (i,j)(i,j) ,设...

2017-10-31 11:42:04

阅读数:167

评论数:0

[数论 拓展欧拉定理] BalkanOI 2016. Power-towers

题目大概是求这个东西模 mm由拓展欧拉定理ab≡⎧⎩⎨⎪⎪ab%ϕ(p)           gcd(a,p)=1ab                  gcd(a,p)≠1,b<ϕ(p)ab%ϕ(p)+ϕ(p)    gcd(a,p)≠1,b≥ϕ(p)   (modp)a^b\equiv ...

2017-10-31 11:41:03

阅读数:166

评论数:0

[线段树 哈希] BalkanOI 2016. Haker

题目是给定一个字符串,有三种操作.一种是询问两个子串是否相同一种是区间内的 aa 变成 bb,bb变成 cc … zz 变成 aa一种是区间 [L,R][L,R] 变成原串的区间 [k,k+R−L][k,k+R-L] 的子串因为要判断是否相同,肯定就要HASH,因为第二种操作,要记一下每个字母出现...

2017-10-31 11:40:38

阅读数:146

评论数:0

[二分答案 DP检验 几何] BalkanOI 2017. Cruise

题意是给定平面内2000给点(都在y轴右边),要选出一些点,和原点组成多边形,求在多边形内的点的点权和除以多边形周长的最大值。分数规划,二分答案∑wi∑disi,j≥mid{\sum w_i\over \sum dis_{i,j}}\ge mid∑w−mid∑disi,j≥0\sum w-mid\...

2017-10-31 11:40:05

阅读数:169

评论数:0

[最小斯坦纳树] Baltic OI 2016. Cities

应该最小斯坦纳树裸题吧…加个spfa的那个优化就可以了#include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <queue&g...

2017-10-28 21:05:37

阅读数:340

评论数:0

[DP] Atcoder AGC013D. Piling Up

假设刚开始有 xx 个红色, n−xn-x 个蓝色一个合法的数列有多个初始的 xx 值,对于最小的 xx 值,在操作的过程中,xx 会变成0那么 fi,j,0..1f_{i,j,0..1} 表示操作了 ii 次,当前 x=jx=j ,xx 是否变成过0答案就是 ∑fm,i,1\sum f_{m,i...

2017-10-28 15:05:47

阅读数:234

评论数:0

[并查集] UOJ#61. UR#5 怎样更有力气

这题调的我心态爆炸大概就是可以把这条链分成若干联通块,联通块之间能连边就直接连因为每条边只会被缩一次,所以复杂度是有保证的#include <cstdio> #include <iostream> #include <algorithm> #include &l...

2017-10-26 11:40:10

阅读数:194

评论数:0

[最小割] Codeforces 434D. Nanami's Power Plant

因为费用是个二次函数那么把点 ii 拆成 ri−li+1r_i-l_i+1 个点,第 jj 个点 向 j+1j+1 点连流量为 −f(i,j)-f(i,j) 的边,SS 向 lil_i 连边,rir_i 向 TT 连边这样求一个最小割就是答案。然后因为有若干限制,那么 xu≤xv+dx_u\le ...

2017-10-26 11:04:43

阅读数:165

评论数:0

[几何 区间DP] Codeforces 438C & 437E. The Child and Polygon

题目是求三角剖分个数令 fi,jf_{i,j} 表示 i∼ji\sim j 这些点组成的多边形的三角剖分方案数我们找到一个点 kk,让 i,j,ki,j,k 形成一个三角形,那么 fi,j=∑fi,k×fk,jf_{i,j}=\sum f_{i,k}\times f_{k,j}那么让 kk 在向量...

2017-10-26 10:58:58

阅读数:191

评论数:0

[交互] Codeforces Gym101190 NEERC2016I. Indiana Jones and the Uniform Cave

题目要求我们遍历一遍图可以用石子的三种状态表示这个点的状态(Center未访问、Right在栈中、Left不在栈中)从一个点开始遍历,把石子放在当前遍历的边的Right,如果没访问到的点没访问过就继续。如果访问到的点在栈中,那么我们就沿着石子的那条边走,顺便把石子放在Left,这样走到的第一个石子...

2017-10-25 07:33:01

阅读数:180

评论数:0

[欧拉回路 最小生成树] UOJ#236 -- IOI2016. railroad

对每个速度建一个点,ss 向 tt 连一条边,那么就是要再加一些边使得能走过所有边。加一条 inf\inf 到 11 的边,题目就转换为求最小代价使图变成欧拉图考虑这样一个区间 [i,i+1][i,i+1] , 只有满足 s≤i,t≥i+1s\le i,t\ge i+1 的边与满足 t≤i,s≥i...

2017-10-24 17:07:17

阅读数:270

评论数:0

[模拟费用流] Codeforces Gym101190 NEERC2016M. Mole Tunnels

可以费用流建图。但是数据范围太大,那么记一下每个点相连的反向边的流量。枚举lca就相当于模拟费用流找一条最短的增广路树高log,复杂度就是 O(nlogn)O(n\log n )#include <cstdio> #include <iostream> #include &...

2017-10-24 15:38:03

阅读数:124

评论数:0

[数学] Codechef September Challenge 2017 Weasel does Xor on Tree

令 fi,jf_{i,j} 表示时间为 ii 的时候,jj 点的权值那么 fi,u=XOR{fi−1,v|v∈sonu}f_{i,u}=\text{XOR}\{f_{i-1,v}|v\in son_u\}fi−1,vf_{i-1,v} 用 fi−1,v′f_{i-1,v'} 带入不断展开就可以得到...

2017-10-24 13:38:02

阅读数:127

评论数:0

[xor最小生成树 分治 字典树合并] BNUOJ52318 Be Friends

二进制从高到低分治,当前分治到第 ii 位那么肯定是把第 ii 位为0的放一起,为1的放一起,这两块分别成一个联通块,然后之间连一条边是最优的两块分治下去。找最小边的话一边建字典树,另一边的数在字典树上找#include <cstdio> #include <iostream&g...

2017-10-23 20:06:40

阅读数:244

评论数:0

[博弈] Codeforces Gym101190 NEERC2016G. Game on Graph

有向图博弈Manchery题解#include <cstdio> #include <iostream> #include <algorithm> #include <queue> #include <cstring>using name...

2017-10-23 20:05:21

阅读数:116

评论数:0

[GCD最大生成树 LCT] HDU5398 .GCD TREE

可以发现只要保留边 (i,j)(i,j) 其中 ii 整除 jj 的边就行了用LCT来维护最大生成树就可以了#include &lt;cstdio&gt; #include &lt;iostream&gt; #include &lt;algorithm&am...

2017-10-23 15:06:20

阅读数:142

评论数:0

[欧拉回路] 「Balkan OI 2016」Acrobat

一个图是欧拉图的充要条件是每个点度数是偶数且连通第一种操作是同时更改 aia_i 与 aja_j 的度数奇偶性,那么 aia_i 与 aja_j 之间连边,搞棵生成树,一个点的度数是奇数时就删去它与它父亲的边。然后用第二种操作把左边的点连通,再用第二种操作把左边度数为奇数的点连起来#include...

2017-10-22 21:03:03

阅读数:142

评论数:0

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