02 2019 档案
摘要:链接 https://loj.ac/problem/2545 思路 f[i][j]表示i到j区间的最小监视人数 可以预处理出来g[i][j],表示i能否监视到j (其实预处理的关系不大,完全可以直接判断,不过比较不能加=) 一个区间$[l,r]$,一定会选r,显然 然后只要管r不能监视的地方$[x,
阅读全文
摘要:链接 https://www.luogu.org/problemnew/show/P1880 思路 总之就是很牛逼的四边形不等式优化 复杂度$O(n^2)$ 代码 cpp include include include using namespace std; const int N=207; in
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3900 思路 状态压缩,f[i]表示只包含i中的所有元素的最小代价 所有元素排序后两两配对都不能满足,就是inf 其他的,一定小于等于元素个数 1 orz wxy 收获 1,知道自己啥都不会 2
阅读全文
摘要:链接 https://codeforces.com/contest/767/problem/C 思路 之所以把这个题放进来,是因为要记录错误 情况不止一种 所以答案存储就是 =2了 代码
阅读全文
摘要:题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2086 思路 这就有点妙了 题目意思就是让你求平均数 =k的最长序列 先求出a[i] k的前缀和 就是求sum[i] sum[j] =0的最大i j 当$j define ll long l
阅读全文
摘要:题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1566 思路 n个球,第i个球颜色为ai,对于颜色j,对答案的贡献为颜色为j的球的个数的平方 k^2=(1+1+1+..+1) (1+1++1+..+1) for (i=1; i defin
阅读全文
摘要:题目链接 https://loj.ac/problem/2510 思路 f[i][a][b]表示到i时,公路个数a,铁路个数b 记忆化 复杂度=状态数=$nlog^2n$ 代码 cpp include define ll long long using namespace std; const in
阅读全文
摘要:题目链接 https://loj.ac/problem/2508 https://www.lydsy.com/JudgeOnline/problem.php?id=5288 https://www.luogu.org/problemnew/show/P4436 思路 离散化没啥好说的 一堵墙 左边是
阅读全文
摘要:题目链接 541div2 http://codeforces.com/contest/1131/problem/D 思路 给出n序列和m序列的相对大小关系 构造出最大值最小的序列 缩点+拓扑 小的向大的连边 相等的连个环 tarjan缩点,判断环内是否ok 最后拓扑 更新要这样 就是说取最后更新的一
阅读全文
摘要:题目链接 https://codeforces.com/contest/113/problem/D 思路 $k[i]=\frac{1 p[i]}{ru[i]}$ f[i][j]表示经过i和j的次数的期望=概率 $f[i][j]=p[i] p[j] f[i][j]$ $+k[i] p[j] f[u][
阅读全文
摘要:题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=4008 思路 神仙啊 $f[i][j]表示第i个点有j次机会(不管成功与否)$ $f[i][j]=f[i 1][j] (1 p[i 1])^p$ 第i 1个j次都失败 $f[i][j]=f[
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3131 思路 1. 函数值的素因子只有2、3、5、7 由他们组成的状态不多,爆搜的时候即使搜不对也没关系,我们只是缩小范围而已 所以不要管呢么多,搜到几万就差不多了,包含有可能的就行 2. $f
阅读全文
摘要:链接 http://acm.hdu.edu.cn/showproblem.php?pid=1358 思路 当初shenben学长暑假讲过,当初太笨了,noip前几天才理解过来、、 我也没啥好说的 代码 cpp include include include using namespace std;
阅读全文
摘要:链接 https://codeforces.com/contest/213/problem/E 题目大意 给出两个排列a、b,长度分别为n、m,你需要计算有多少个x,使 得$a_1 + x; a_2 + x; a_3 + x、、、 a_n + x$ 是b 的 子序列 (不连续的那种)。 思路 巧妙啊
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2298 思路 把一个人的话转化为区间的线段,显然是$[a_{i},n b_{i}]$ 然后找最大的不相交,不覆盖的最多线段数量 注意是有重复的数字,所以不是单纯的线段覆盖 f[i]=max(f[
阅读全文
摘要:链接 https://loj.ac/problem/2305 https://www.luogu.org/problemnew/show/P3825 思路 3 sat神马的就不要想了,NP问题 除去x每个点只有两种可能,2 sat x只有8个,$3^n$暴力枚举哪个不选 2 sat是对称性的 当起点
阅读全文
摘要:https://www.luogu.org/problemnew/show/P4782 链接 https://www.luogu.org/problemnew/show/P4782 思路 选a就必须选b 好像是要建反边,tarjan,tarjan的染色省去拓扑排序 拓扑排序我也感觉跟贪心似的 代码
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1823 思路 建图,缩点tarjan 判断impossible 代码 cpp include using namespace std; const int N=2e5+7; int read()
阅读全文
摘要:链接 https://www.luogu.org/problemnew/show/P3007 https://www.lydsy.com/JudgeOnline/problem.php?id=2199 思路 建图,缩点tarjan 判断impossible 之后就不是输出方案的套路了 判断Y 、N、
阅读全文
摘要:题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3653 https://www.luogu.org/problemnew/show/P3899 思路 三个点肯定在1到c的链上 a已经确定 1.b是a的祖先,答案就是(siz[u] 1) m
阅读全文
摘要:链接 1735: [Usaco2005 jan]Muddy Fields 泥泞的牧场 思路 这就是个 "上一篇" 的稍微麻烦版(是变脸版,其实没麻烦) 用边长为1的模板覆盖地图上的没有长草的土地,不能覆盖草地 每个点(x,y)只有选择x或者y才能被覆盖 还是最小点覆盖,证明在上一篇 横边和竖边得遍历
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1741 思路 消除所有的小行星 每个点(x,y)只有选择x或者y才能被覆盖 二分图最小点覆盖=最大流 首先,最小顶点覆盖一定 =最大匹配,因为假设最大匹配为n,那么我们就得到了n条互不相邻的边,
阅读全文
摘要:题目链接 https://www.luogu.org/problemnew/show/P2860 思路 缩点,之后就成了个树一般的东西了 然后(叶子节点+1)/2就是答案,好像贪心的样子,lmc好像讲过诶 cpp include include include include define iter
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=4514 思路 EK直接贪心做 b的时候 把b a也连接上 最后除2 整除和贪心可只知道它是对的 代码 cpp include define ll long long define iter ve
阅读全文
摘要:[TOC] 链接 https://www.luogu.org/problemnew/show/P4137 思路 做了好几次,每次都得想一会,再记录一下 可持久化权值线段树 区间出现存最小的下标 然后线段树上二分 如果左边min L 那就去右边 因为左边都被【L,R】占满了 虽然比卡常的莫队慢好多(7
阅读全文
摘要:链接 https://vjudge.net/problem/SPOJ COT2 https://www.luogu.org/problemnew/show/SP10707 思路 dfs欧拉序转化为普通莫队(并不算树上莫队,不过也可做) 好神仙啊,原来欧拉序是可以求任意两点的点,不过要加lca。 代码
阅读全文
摘要:题目 https://www.lydsy.com/JudgeOnline/problem.php?id=4819 思路 分数规划的模板题?(好菜呀) 假如n=3吧(懒得写很长的式子) $c=\frac{a_1+a_2+a_3}{b_1+b_2+b_3}$ 我们先二分一下,变为判定性问题 c是否大于等
阅读全文
摘要:题目 https://www.lydsy.com/JudgeOnline/problem.php?id=4818 思路 先考虑没有质数限制 dp是在同余系下的,所以$f[i][j]$表示前i个点,和为j的方案数 转移就是$f[i][j]=f[i 1][k]+g[(j k)\%p]$ g[i]是x%p
阅读全文
摘要:题目 https://loj.ac/problem/2005 思路 $$ \sum_{L}^{R}{(x_i x)^{2}} $$ $$ \sum_{L}^{R}{(x_i^2 2 x_i x+x^{2})} $$ $$ \sum_{L}^{R}{x_i^2} 2 x \sum_{L}^{R}x_i
阅读全文
摘要:[TOC] 太才了 $\prod \limits_{i=1}^{n}\prod\limits_{j=1}^{m}f[gcd(i,j)]$ $\prod\limits_{k=1}^{n}f[k]^{\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)=
阅读全文
摘要:昨天写了一晚,越写复杂度越感觉不对,早上一想果然是假的。 (这里n,m,k我就不区分了) 首先一个城市的询问可以很容易的二分 check用树状数组维护区间(区间修改,单点查询的那种) 一次是$O(nlog^2n)$ n次就是$O(n^2log^2n)$ 但是我们check的时候都是树状数组维护,询问
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2440 题解 二分,转化为判定1到x内的无平方因子的数的个数 (范围自己二分着试) 然后容斥 含0个平方因子 含1个平方因子+含有两个平方因子~~~~ 于是观察一下上面那个式子,再联想mobiu
阅读全文
摘要:[TOC] 机房最后一个学懵逼钨丝的人 题目一 链接 题目没找到 求$\sum_{1}^{n}\sum_{1}^{m}gcd(i,j)$ 式子 $\sum\limits_{i=1}^{N}\sum\limits_{j=1}^{M} gcd(i,j)$ $\sum\limits_{k=1}^{min(
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2870 思路 先把树转化为二叉树 再链分治 %%yyb 代码 cpp include include include include include include define ll long
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2152 luogu爆搜都能过,总时间超过100ms就是写错了 思路 直接mod上面跑点分治就行了,又是模板 代码 cpp include include include include usin
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3545 离线询问,按照权值排个序 就是在克鲁斯卡尔时候维护个treap,到时候挨个查询一下就好了 nb的gzy说要要在线才是呢,nb 代码 cpp / Problem: 3545 User: g
阅读全文
摘要:链接&&题面 https://www.lydsy.com/JudgeOnline/problem.php?id=2599 思路 没啥思路,就是模板题 只不过顺便维护桶的时候维护一个最小边数 不过最气人的是 我用手写栈会RE,会WR,会运行错误 我用stl的queue会wrong,会TLE 我用stl
阅读全文
摘要:1 点分治好难写呀 写的变量好多,太乱了,一点也不优美 代码 cpp include using namespace std; const int N=1e5+7; int read() { int x=0,f=1;char s=getchar(); for(;s '9'||s='0'&&s=sta
阅读全文
摘要:链接 https://www.luogu.org/problemnew/show/P1552 思路 忍者数量肯定越多越好 那就从下到上的合并它的孩子 左偏树的话 顺便维护一个tot,大头堆,如果tot大于了m,把大的删掉 如果左偏树忘干净了或者没学的话 线段树合并也是个不错的选择 直接权值线段树合并
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3262 思路 CDQ版本稍后再说 二维偏序排序用树状数组求就可以 而三维之后就不可以了,但我们可以在BIT上维护一个功能强大的treap 维护多出来的一维c BIT套treap a排序 BIT维
阅读全文
摘要:链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1251 思路 好简单的模板题 不过还是wrong了好几发 叶子节点要注意下,不能使用 遇到就不管 写的fhq treap,OI中常数最大的平衡树,中间还T了一发 代码 cpp include i
阅读全文
摘要:[TOC] 链接 https://www.luogu.org/problemnew/show/P4069 思路 树剖+超哥线段树 我已经自毙了,自闭了!!!! update 上次抄了没认真看,这次考试又自毙了 是一个细节的处理上一次没处理 代码 cpp include define ll long
阅读全文
摘要:题目链接 https://ac.nowcoder.com/acm/contest/368/F 思路 询问可以离线。 然后每个节点上建32个权值线段树(权值不大,其实只要20颗) 记录每一位权值为x(如果是根节点的话)的01和 然后从根节点向上合并。 访问到需要访问的就查询。 大体这样,不过细节和处理
阅读全文
摘要:链接 https://www.luogu.org/problemnew/show/P4097 https://www.lydsy.com/JudgeOnline/problem.php?id=3165 思路 还是模板超哥线段树 注意没有斜率的时候 还有貌似卡精度了,long doule不行,需要ep
阅读全文
摘要:题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1568 https://www.luogu.org/problemnew/show/P4254 思路 超哥线段树模板题 若当前线段完全高于标记线段,则将当前线段进行标记 若当前线段完全低于标
阅读全文
摘要:[TOC] 二次剩余 给定y和奇质数p,求x,使得$x^2≡y(mod p)$ 勒让德符号(legendre symbol) 以前看视频的截图 求解$x^2\equiv a(mod\ p)$时,我们可用勒让德符号来判定他是否有解 (前提,p必须为奇素数) $\begin{pmatrix} \frac
阅读全文
摘要:[TOC] 问题 给定n,要求对n质因数分解 普通的试除法已经不能应用于大整数了,我们需要更快的算法 流程 大概就是找出$n=c d$ 如果$c$是素数,结束,不是继续递归处理。 具体一点的话 1.先对n进行$miller\_rabin$测试,是素数就直接结束了 如果不会的话,看我前篇博客的介绍吧
阅读全文
摘要:[TOC] 问题 一个数到底是不是素数 别的 首先列一下我们可以求素数的东西 根号暴力求 $O(nloglogn)$的埃氏筛 $O(n)$的欧拉筛 还有我们要学习的Miller_Rabin算法 对了,还有神奇的6倍法(也许叫这个吧) cpp include using namespace std;
阅读全文
摘要:[TOC] bsgs问题 或 poj2417: 给定质数$p$,给定$a$,$b$,$(a,p)=1$ 求出最小的整数x,使得$a^{x}≡b(mod p)$ 概述 由费马小定理可以知道 $a^{x+p 1}≡a^{x}≡b(mod p)$ 所以如果有解那$[0,p 1]$区间内一定会出现解 让$m
阅读全文