摘要:
ABCF看到以后立马就会做了,ABC差一点做到都比dreamoon切得快(总罚时比dreamoon少1分钟),主要是我在写C的时候multiset不知道为什么坏掉了。。。改了好长时间,最后换了堆 存起来再reverse输出的。。。DE自闭了好长时间然后发现是傻逼题 A.给一个abbcccddddee 阅读全文
posted @ 2018-12-28 20:33
QvvQ
阅读(266)
评论(0)
推荐(0)
摘要:
一张手写的题解 这些点一定在凸壳上 证明可以参照 "gxz大佬的题解" 这个题的做法是按照询问作为时间轴,把每个插入的向量视为在一个时间区间 $[l,r]$ 内有效,在 $[l,r]$ 在线段树上对应的 $O(log n)$ 个区间上打上标记,然后dfs一下整棵线段树,对于每个dfs到的线段树节点, 阅读全文
posted @ 2018-12-28 19:29
QvvQ
阅读(253)
评论(0)
推荐(0)
摘要:
$f[i][j]$ 表示第1到i 1轮宝物是否取过的状态是j,第i轮到最后一轮的最大得分。 这样设计状态并且倒着推,可以保证不合法的状态是0,不会造成影响 $nd[i]$表示第i个物品要求的状态 cpp include using namespace std; typedef long long L 阅读全文
posted @ 2018-12-28 16:52
QvvQ
阅读(208)
评论(0)
推荐(0)
摘要:
题意:给出一个不降序列,有多个询问,询问[l,r]中出现次数最多的数的出现次数 多组数据 对于序列 1 1 1 1 1 1 3 10 10 10 可以这么理解, , , cnt[i]记录这个数字的出现次数,lef[i]记录左端点,righ[i]记录右端点,belong[i]代表第i个数字属于哪一块 阅读全文
posted @ 2018-12-28 16:50
QvvQ
阅读(183)
评论(0)
推荐(0)
摘要:
题意:给出一些矩阵,求这些矩阵合并后外部(被包括在内部的不算)周长 端点 1这个是用点代替了边,区间内有几个点就代表区间长度是多少 阅读全文
posted @ 2018-12-28 16:50
QvvQ
阅读(248)
评论(0)
推荐(0)
摘要:
第一问是直接建图跑最大流 第二问需要在跑完第一问的残量网络上建图,对于正向边建容量是inf,费用是扩容费用的边,反向边建容量为0,费用是负的扩容费用的边,最后加一条边限流 cpp include using namespace std; define MP make_pair define pb p 阅读全文
posted @ 2018-12-28 16:49
QvvQ
阅读(219)
评论(0)
推荐(0)
摘要:
按照加减血量排序,杀完能加血的放在前面,但有个地方要注意,就是如果两个怪物杀死都能加血的话,要把减少血量少的放在前面 cpp include using namespace std; const int MAXN = 1e5+7; struct Data{ int x, y, ord; inline 阅读全文
posted @ 2018-12-28 16:46
QvvQ
阅读(197)
评论(0)
推荐(0)
摘要:
建图方式: S 同意 ,反对 T 对于每一对好友连容量为1的边 cpp include using namespace std; const int inf = 1e9; const int MAXN = 3e2+7; const int MAXM = 2e5+7; int n, m, s, t, 阅读全文
posted @ 2018-12-28 16:46
QvvQ
阅读(146)
评论(0)
推荐(0)
摘要:
每个柱子拆成两个点 连一条柱子高度的边限流 源点 蜥蜴 汇点 或者 源点 蜥蜴 拆成的第一个点 拆成的第二个点 汇点 细节多 cpp include using namespace std; const int MAXN = 1207; const int MAXM = 2e5+7; const i 阅读全文
posted @ 2018-12-28 16:45
QvvQ
阅读(191)
评论(0)
推荐(0)
摘要:
$gcd(x,y)=p | p∈P$ $gcd(x_1\times p,y_1\times p) = p$ $gcd(x_1,y_1)=1$ 每个素数的贡献是对于$[1,\lfloor\frac{n}{prime[i]}\rfloor]$里的每个数的欧拉函数的前缀和,因为$(x_1,y_1)$可以交 阅读全文
posted @ 2018-12-28 16:44
QvvQ
阅读(158)
评论(0)
推荐(0)
摘要:
```cpp include using namespace std; int n, ans, c, i, j, k; bitseta[2005]; int read() { for(c = getchar(); !isdigit(c); c = getchar()); return c '0'; 阅读全文
posted @ 2018-12-28 16:43
QvvQ
阅读(165)
评论(0)
推荐(0)
摘要:
天数最多 长度最小 天数是流量,长度是费用 每个点拆成两个点限流1,就能保证只走一次 然后跑费用流 cpp include using namespace std; define MP make_pair define pb push_back define read2(a, b) (read(a) 阅读全文
posted @ 2018-12-28 16:42
QvvQ
阅读(147)
评论(0)
推荐(0)
摘要:
做法跟没有上司的舞会差不多,只要把环上的任两点之间断开,从断开的两点分别为起点跑一次树形dp,然后取max就行了 几个坑点: 1.可能有多个连通块,每个连通块都是一个基环树 2.断环的时候没想到什么方法。。。后来用vector暴力找的。。。 3.爆int 4.代码里有个小地方,加了注释 常数极大,不 阅读全文
posted @ 2018-12-28 16:32
QvvQ
阅读(114)
评论(0)
推荐(0)
摘要:
对于不在应该在的位置上的一个数a[i],每轮排序a[i]可以向后走多步,但只能向前一步,所以答案就是$$max \{i a[i]\}$$ 很恶心的卡常数,如果统计ans再开一个循环的话,需要开O3 关于在循环内统计答案的正确性。。。。不是很懂 cpp pragma GCC optimize("O3" 阅读全文
posted @ 2018-12-28 16:31
QvvQ
阅读(220)
评论(1)
推荐(0)
摘要:
其实主要代码就是这个。。。 $x[1] = (ax[0] + c) \pmod m$ $x[2] = a((ax[0] + c)+c) = a^2x[0] + ac + c \pmod m$ $x[3] = a(a^2x[0] + ac + c)+c = a^3x[0] + a^2c + ac + 阅读全文
posted @ 2018-12-28 16:30
QvvQ
阅读(206)
评论(0)
推荐(0)
摘要:
orz 抄自 "www.hzwer.com" 首先证明不可能出现输出 1的情况:(其实黑点的增长只会发生在第一秒) 反设白点i在第一秒时由于某个方向(设为上方)没有黑点,就没有变成黑点,而在后来又成为了黑点。 此时在i点上方必有了黑点j,而j要成为黑点,j的上方必存在一个黑点,而那个黑点同时也在i的 阅读全文
posted @ 2018-12-28 16:25
QvvQ
阅读(161)
评论(0)
推荐(0)
摘要:
对每个门bfs,求出每个点到这个门需要的时间 二分答案,每次建图的时候在当前时间内能到达就连边,不能到达就不连边 我好像做麻烦了,不需要拆点,直接这样建图就行: S到空地连一条容量1的边,每个空地到可到达的门连一条容量1的边,每个门到T连一条容量为时间的边 cpp include using nam 阅读全文
posted @ 2018-12-28 16:22
QvvQ
阅读(150)
评论(0)
推荐(0)
摘要:
题意:给一个n个点的树,点有点权,有m次询问,每次询问多条链的并有多少种不同的点权以及它的mex mex就是一个集合中最小的没有出现的非负整数,注意0要算 rand出 $\sqrt n$个点,把每次查询拆成 x fx0 fx lca fy fy0 y cpp include using namesp 阅读全文
posted @ 2018-12-28 16:20
QvvQ
阅读(236)
评论(0)
推荐(0)
摘要:
往返一次相当于走两次 危桥流量为2,正常边流量为inf 源点连 $a_1,a_2$,流量为 $2 \cdot a_n$, $b_1,b_2$连汇点,流量为$2 \cdot b_n$ 一般想来如果最大流$\ge \ 2\cdot \left(a_n+b_n\right)$就输出 Yes 注意到如果$a 阅读全文
posted @ 2018-12-28 16:18
QvvQ
阅读(138)
评论(0)
推荐(0)
摘要:
题意:找出满足$pre[j] \leq S + pre[i 1]$且j i最大的(i,j),$pre$是前缀和 二分长度和端点都不行,因为没有单调性 对于$i_1\lt i_2$,若有$pre[i_1 1] \ge pre[i_2 1]$则$i_2$一定不会成为答案中的i,这类i就可以忽略掉 我们可 阅读全文
posted @ 2018-12-28 16:17
QvvQ
阅读(163)
评论(0)
推荐(0)
摘要:
这份代码在某些corner case会出错 因为是$\mod 2$意义下进行的运算,所以可以用异或来代替(只是为了方便。。 $$ \text{query}\left( l,r \right) =\text{find}\left( r \right) \text{find}\left( l 1 \ri 阅读全文
posted @ 2018-12-28 16:07
QvvQ
阅读(224)
评论(0)
推荐(0)
摘要:
首先从二分图匹配的角度来想这个题,只要每个人都能和一双鞋子匹配,那么溜冰鞋就是足够的。 但看范围不能用二分图匹配来做,因为边数会爆炸 Hall定理是判定二分图是否存在完全匹配的定理。 完全匹配:是指最大匹配数为 $min(|X|,|Y|)$ 也就是 $X$ 或 $Y$ 集合其中一个集合所有点都被匹配 阅读全文
posted @ 2018-12-28 16:03
QvvQ
阅读(256)
评论(0)
推荐(0)
摘要:
题意:给一个 $L (L \leq 10^6) $ ,要求构造一张有向图,边从编号小的点连向编号大的点,从 $1$ 到 $n$ 恰好有 $L 1$ 条不同的路径,且路径长度是 $[0,L 1]$ 的数字且各不相同,最多20个点 60条边 $2^{20}$ 差不多是 $10^6$ 加上类似鬼谷子的钱袋 阅读全文
posted @ 2018-12-28 16:02
QvvQ
阅读(197)
评论(0)
推荐(0)
摘要:
题意:一棵树,有 $m$ 个人从 $s_i$ 到 $t_i$ 跑步,每个人的速度都是1,每个点有一个观察员 当一个人在w[i]经过第 $i$ 个点的时候 第 $i$ 个点的答案+1 问每个点的答案 从 $s$ 到 $t$ 可以分成1个人从$s$到根, 1个人从根到 $\text{fa[lca(s,t 阅读全文
posted @ 2018-12-28 16:01
QvvQ
阅读(170)
评论(0)
推荐(0)
摘要:
我菜死了,想了好长时间 $k$ 是奇数的时候 $$ 都是 $k$ 的倍数才可以,答案就是$\lfloor \frac{n}{k} \rfloor^3$ 是偶数的时候多出来一种情况 就是 $a \equiv \frac{k}{2} \pmod k$ 阅读全文
posted @ 2018-12-28 16:00
QvvQ
阅读(295)
评论(0)
推荐(0)
摘要:
我好咸啊,一个多小时才写完这sb题 给一个长2e5的16进制原串(要转成2进制) 要解密这个串 首先要判断是否合法,把原串分成9位一段(最后不够9个的不要了),对于每段 统计前8位1的个数 第9位是校验码,1的个数是偶数 第9位是1 或者1的个数是奇数 第九位是0 都是合法的 否则不合法 然后把合法 阅读全文
posted @ 2018-12-28 15:59
QvvQ
阅读(190)
评论(0)
推荐(0)
摘要:
2操作可以转化成x的权值在i时刻变成了1,然后查询的操作相当于查询i c[i] 时刻 x y链上权值和 可以差分成 $$f(x) + f(y) f(\text{lca}) f(fa[lca])$$ f是指根到一个点链上的权值和 这个可以直接写成 x子树中跟链无关的点会抵消掉(x子树中的所有点dfs序 阅读全文
posted @ 2018-12-28 15:57
QvvQ
阅读(171)
评论(0)
推荐(0)
摘要:
题意:求 $$ \sum_{i=1}^{ik+r\le n}{\text{C}^{ik+r}_{nk}}\left( \text{mod }p \right) $$ 发现实际上是求 $\mod p \equiv r$ 的组合数之和 $dp[i][j]$表示从 $i$ 个球中取 $j$ 个的方案数 其 阅读全文
posted @ 2018-12-28 15:55
QvvQ
阅读(219)
评论(0)
推荐(0)
摘要:
三种堆分别是std::priority_queue pbds::priority_queue(pairing_heap_tag) zkw线段树(加入了剪枝,即modify函数里当兄弟节点的value比自己小的时候break,因为再往上的最小值肯定由兄弟节点贡献) 为什么没有手写的paring_hea 阅读全文
posted @ 2018-12-28 15:46
QvvQ
阅读(371)
评论(0)
推荐(0)
摘要:
~~王道征途~~ $$ \text{题目要求的东西可以化成}m\times \sum_{i=1}^m{d\left[ i \right] ^2 pre\left[ n \right] ^2} \\ \text{对于}\sum_{i=1}^m{d\left[ i \right] ^2\text{做DP 阅读全文
posted @ 2018-12-28 15:44
QvvQ
阅读(153)
评论(0)
推荐(0)
摘要:
$$ x^2+y^2=r^2 \\\\ y^2=\left( r+x \right) \left( r x \right) \\\\ \text{let }d=\text{gcd}\left( r+x,r x \right) \\\\ \text{let }r x=d\times a^2,r+x=d 阅读全文
posted @ 2018-12-28 15:43
QvvQ
阅读(149)
评论(0)
推荐(0)
摘要:
$$ f\left[ i \right] =\min \left\{ f\left[ j \right] +\left( i j 1+pre\left[ i \right] pre\left[ j \right] l \right) ^2 \right\} \\ \text{令}g\left( i 阅读全文
posted @ 2018-12-28 15:41
QvvQ
阅读(208)
评论(1)
推荐(0)
摘要:
题意:无修改询问区间最大子段和,但一个数字如果在一个区间中多次出现,只计一次 好神 考虑离线处理,逐个加入序列的每个元素,假设当前处理到第k个元素,令$s[j]$表示$\displaystyle\sum_{i=j}^k a[i]$,线段树维护$s$,对于一个询问$[l,r]$,就可以通过处理完第$r 阅读全文
posted @ 2018-12-28 15:36
QvvQ
阅读(190)
评论(0)
推荐(0)
摘要:
题意:求每个节点子树众数和(比如3和5都是众数 答案是8) 树上启发式合并可以解决一些无修改的子树询问 先solve轻儿子,后solve重儿子,如果该节点是轻儿子,然后重新统计轻儿子的贡献,更新该节点的答案,如果该节点是轻儿子,那么将该节点的贡献删除,回溯(其实就是保留了重儿子的答案) 由于轻重链剖 阅读全文
posted @ 2018-12-28 15:35
QvvQ
阅读(196)
评论(0)
推荐(0)
摘要:
对于一个国家内部,每个点都要向剩下的所有点连边,会有$O(n^2)$条边 学习了前缀和优化建图的新姿势 在每个点拆成两个的基础上,再开两个点 $i_3$,$i_4$表示前缀$[1,i]$中有/没有首都 "这个blog" 讲得比较详细 cpp struct Edge { int v, next; } 阅读全文
posted @ 2018-12-28 15:31
QvvQ
阅读(148)
评论(0)
推荐(0)
摘要:
最初在HDU的ACM模板上看到这个分治的DP优化 用这个的前提是不强制在线(f[i]不由前面的f转移过来)且决策单调 $$ \forall j\in \left[ \text{1,}n \right] \,\,p_i\ge a\left[ j \right] a\left[ i \right] \s 阅读全文
posted @ 2018-12-28 15:29
QvvQ
阅读(187)
评论(0)
推荐(0)
摘要:
```cpp int T, n, m, l, p, pre[MAXN], q[MAXN], h, t, b[MAXN];//b[i]表示决策点是i的最后一个位置 llf dp[MAXN]; char s1[35]; inline llf get(int i, int j) { return dp[j] + Pow(abs(pre[i] - pre[j] + i - j - 1 - m), ... 阅读全文
posted @ 2018-12-28 15:28
QvvQ
阅读(177)
评论(0)
推荐(0)

浙公网安备 33010602011771号