12 2018 档案
摘要:【CF527C】Glass Carving 题面 "洛谷" 题解 因为横着切与纵切无关 所以开$set$维护横着的最大值和纵着的最大值即可 cpp include include include include include include include using namespace std;
阅读全文
摘要:【CF833D】Red Black Cobweb 题面 "洛谷" 题解 看到这种统计路径的题目当然是淀粉质啦。 考虑转化一下信息设一条路径上有红点$a$个,黑点$b$个 则$2min(a,b)\geq max(a,b)$ $\Leftrightarrow 2 a\geq b$且$2 b\geq a$
阅读全文
摘要:【LG4631】[APIO2018]Circle selection 选圆圈 题面 "洛谷" 题解 用$kdt$乱搞剪枝。 维护每个圆在$x、y$轴的坐标范围 相当于维护一个矩形的坐标范围为$[x r,x+r],[y r,y+r]$ 可以减小搜索范围 然后再判断一下一个圆是否在当前搜索的矩形内,不在
阅读全文
摘要:【LG4169】[Violet]天使玩偶/SJY摆棋子 题面 "洛谷" 题解 至于$cdq$分治的解法, "以前写过" $kdTree$的解法好像还$sb$一些 就是记一下子树的横、纵坐标最值然后求一下点到矩形得到距离 之后再剪枝即可 ~~为什么不吸氧还是跑不过啊~~ cpp include inc
阅读全文
摘要:【LG4148】简单题 题面 "洛谷" 题解 $kdt$模板题呀。。。 cpp include include include include include include using namespace std; inline int gi() { register int data = 0,
阅读全文
摘要:【LG5055】可持久化文艺平衡树 题面 "洛谷" 题解 终于不可以用$Trie$水了。。。 和普通的$FHQ\;treap$差不多 注意一下$pushdown$、$split$要新开节点 代码 cpp include include include include include include
阅读全文
摘要:【BZOJ3527】[ZJOI2014]力 题面 "bzoj" "洛谷" 题解 易得 $$ E_i=\sum_{ji}\frac{q_j}{(i j)^2} $$ 设$f_i=q_i$,$g_i=i^2$ $$ E_i=\sum_{ji}f_jg_{i j} $$ 将$f$翻转得到$h$ $$ E_
阅读全文
摘要:(EX)CRT总结 这个东西是联赛的时候搞的,早就忘了,写篇博客复习一下 中国剩余定理(crt) 给定$a$、$m$ $$ x\equiv a_1(mod\;m_1)\\ x\equiv a_2(mod\;m_2)\\ x\equiv a_3(mod\;m_3)\\ ...\\ x\equiv a_
阅读全文
摘要:【BZOJ2154】Crash的数字表格 题面 "bzoj" "洛谷" 题解 不妨设$n\leq m$ 题目是求: $$ \sum_{i=1}^n\sum_{j=1}^mlcm(i,j) $$ 还是照常推式子qaq $$ \sum_{i=1}^n\sum_{j=1}^m\frac{ij}{gcd(i
阅读全文
摘要:【BZOJ4803】逆欧拉函数 题面 "bzoj" 题解 题目是给定你$\varphi(n)$要求前$k$小的$n$。 设$n=\prod_{i=1}^k{p_i}^{c_i}$ 则$\varphi(n)=\prod_{i=1}^k{p_i}^{c_i 1}(p_i 1)$ 然后我们猜一下这个$n$
阅读全文
摘要:【BZOJ3489】A simple rmq problem 题面 "bzoj" 题解 这个题不强制在线的话随便做啊。。。 考虑强制在线时怎么搞 预处理出一个位置上一个出现的相同数的位置$pre$与下一个位置$nxt$ 则对于一个询问$[l,r]$ 一个位置$i$当且仅当$pre_ir$ 我们可以将
阅读全文
摘要:狄利克雷卷积&莫比乌斯反演总结 Prepare 1、$[P]$表示当$P$为真时$[P]$为$1$,否则为$0$。 2、$a|b$指$b$被$a$整除。 3、一些~~奇怪~~常见的函数: $1(n)=1$ $id(n)=n$ $\sigma(n)=n的约数和$ $d(n)=n的约数个数$ $\eps
阅读全文
摘要:【BZOJ1054】[HAOI2008]移动玩具 题面 "bzoj" "洛谷" 题解 太$sb$了,不想写了,直接点开洛谷题面单击右边蓝色按钮题解即可
阅读全文
摘要:【BZOJ1053】[HAOI2007]反素数 题面 "bzoj" "洛谷" 题解 可以从反素数的定义看出小于等于$x$的最大反素数一定是约数个数最多且最小的那个 可以枚举所有的质因数来求反素数,但还是跑不过 我们又想,质因数不可能太大 而$37$内素数相乘已经大于$2 10^9$了 所以枚举到$3
阅读全文
摘要:【BZOJ1052】[HAOI2007]覆盖问题 题面 "bzoj" "洛谷" 题解 二分答案是显然的。 算一下包含所有的点的最小矩形的范围$(x1,y1)$$(x2,y2)$ 贪心思考一下肯定是把塑料薄膜其中一个角放在此矩形上的 然后$dfs$判一下即可
阅读全文
摘要:【BZOJ1051】[HAOI2006]受欢迎的牛 题面 "bzoj" "洛谷" 题解 假如$A$喜欢$B$就连一条$A$到$B$的边 然后缩点,如果图不连通就$Impossible$ 否则输出出度为$0$的环的大小 cpp include include include include inclu
阅读全文
摘要:【BZOJ1050】[HAOI2006]旅行 题面 "bzoj" "洛谷" 题解 先将所有边从小往大排序 枚举钦定一条最小边 再枚举依次枚举最大边,如果两个点联通了就$break$统计答案即可 代码
阅读全文
摘要:【BZOJ1049】[HAOI2006]数字序列 题面 "bzoj" "洛谷" 题解 第一问 直接做不是很好做,可以转化为最大化不修改的点最多 对于原数列,对于$i,j$($i include include include include include include using namespa
阅读全文
摘要:【BZOJ1048】[HAOI2007]分割矩阵 题面 "bzoj" "洛谷" 题解 $dp[a][b][c][d][num]$表示将矩形$(a,b,c,d)$分成$num$个的最小方差,然后转移即可 cpp include include include include include inclu
阅读全文
摘要:【BZOJ1047】[HAOI2007]理想的正方形 题面 "bzoj" "洛谷" 题解 二维$st$表,代码是以前的 cpp include include include include include include include include include include includ
阅读全文
摘要:【BZOJ1046】[HAOI2007]上升序列 题面 "bzoj" "洛谷" 题解 $dp$完之后随便搞一下即可,注意不要看错题 代码
阅读全文
摘要:【BZOJ1045】[HAOI2008]糖果传递 题面 "bzoj" "洛谷" 题解 根据题意,我们可以很容易地知道最后每个人的糖果数$ave$ 设第$i$个人给第$i 1$个人$X_i$个糖果($i=1$则表示第1个人个第$n$个人,$X_i include include include inc
阅读全文
摘要:【BZOJ1044】[HAOI2008]木棍分割 题面 "bzoj" "洛谷" 题解 第一问显然可以二分出来的。 第二问: 设$dp[i][j]$表示前$i$个,切了$j$组的方案数 发现每次转移都是从前面一个区间过来的 直接前缀和优化就好了 代码 cpp include include inclu
阅读全文
摘要:【BZOJ1041】[HAOI2008]圆上的整点 题面 "bzoj" "洛谷" 题解 不妨设$x 0,y 0$ $$ x^2+y^2=r^2\\ y^2=(x+r)(x r) $$ 设$r x=ud,r+x=vd,(u,v)=1$ $$ y^2=d^2uv $$ $u,v$一定为完全平方数 则$u
阅读全文
摘要:【LG2257】YY的GCD 题面 "洛谷" 题解 题目大意: 给定$n,m$求$\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)为质数]$。 我们设$f(x)=[x为质数]$,需要找到一个$g$使得$f=1 g$,那么$g=\mu f$ $$ g(x)=\sum_{d|x
阅读全文
摘要:【BZOJ1018】[SHOI2008]堵塞的交通 题面 bzoj 洛谷 洛谷 题解 菊队讲要用线段树维护连通性,但是好像没人写 解法一 将所有的加边删边离线,然后以最近删除时间为边权,$LCT$维护最大生成树即可 代码 解法二 没打,但是可以参考这篇文章
阅读全文
摘要:【LG4735】最大异或和 题意 "洛谷" 题解 维护一个前缀异或和$S_i$ 对于一个询问操作$l$、$r$、$x$ 就是等价于求一个位置$p$($l\leq p \leq r)$使得$S_nxorS_{p 1}xorx$最大 可将此问题转化为求$p$使$S_{p 1}$ $xor$ $S_n x
阅读全文
摘要:【POJ2482】Stars in Your Window 题面 "vjudge" 题解 第一眼还真没发现这题居然™是个扫描线 令点的坐标为$(x,y)$权值为$c$,则 若这个点能对结果有$c$的贡献,必须要矩形左下角的点的范围必须在$([x,x+w),[y,y+h))$之间 则按扫描线套路将一个
阅读全文
摘要:【POJ1733】Parity game 题面 "vjudge" 题解 比较简单的分类并查集 将一个查询操作看作前缀和$s_r s_{l 1}$的奇偶性 将每个点拆成一奇一偶然后分别连边即可 如果一个点的奇点和偶点被连在一起了就判无解即可 代码 cpp include include include
阅读全文
摘要:【LG2495】[SDOI2011]消耗战 题面 "洛谷" 题解 "参考博客" 题意 给你$n$个点的一棵树 $m$个询问,每个询问给出$k$个点 求将这$k$个点与$1$号点断掉的最小代价 其中$n\leq250000$ $m\geq1$ $\Sigma k_i\leq500000$ 暴力 考虑直
阅读全文
摘要:【LG4175】[CTSC2008]网络管理 题面 "洛谷" 题解 感觉就和 "普通的整体二分" 差不太多啊。。。 树上修改就按时间添加,用树状数组维护一下即可 代码 cpp include include include include include include using namespac
阅读全文
摘要:【LG2481】[SDOI2011]拦截导弹 题面 "洛谷" 题解 可以看出第一问就是一个有关偏序的$LIS$,很显然可以用$CDQ$优化 关键在于第二问 概率$P_i=$ $总LIS数$ / $经过i的LIS数$ 分别正反跑两遍$CDQ$可以统计出分别以$i$为终点和起点的$LIS$数 乘起来就是
阅读全文
摘要:【LG1975】[国家集训队]排队 题面 "洛谷" 题解 又是一个偏序问题 显然$CDQ$ 交换操作不好弄怎么办? 可以看成两次删除两次插入 排序问题要注意一下 代码 cpp include include include include include include include using
阅读全文
摘要:【LG1393】动态逆序对 题面 "洛谷" 题解 $CDQ$分治,按照时间来分治 应为一个删除不能对前面的操作贡献,所以考虑一个删除操作对它后面时间的操作的贡献 用上一个答案减去次贡献即可 代码 cpp include include include include include include
阅读全文
摘要:【LG1527】[国家集训队]矩阵乘法 题面 "洛谷" 题解 我也不知道为什么取个这样的名字。。。 其实就是区间$kth$扩展到二维 还是用整体二分搞啦,把树状数组换成二维的 其他的基本没有什么差别 复杂度$nlog^3$ 代码 cpp include include include include
阅读全文
摘要:【LG3527】[POI2011]MET Meteors 题面 "洛谷" 题解 整体二分。 每次二分$mid$,如果到时间$mid$以收集过$P_i$就存入子序列$L$,否则存入子序列$R$ 修改可以树状数组区间修改单点查询做 每个王国的掉落地点用$vector$存一下即可 看起来复杂度是平方的实则
阅读全文
摘要:【BZOJ1176】[BOI2007]Mokia 摩基亚 题面 "bzoj" "洛谷" 题解 显然的$CDQ$$/$树套树题 然而根本不想写树套树,那就用$CDQ$吧。。。 考虑到点$(x1,y1)$和$(x2,y2)$区域内既有上限又有下限我们不是很好算 于是将这个区域的贡献写成另外一种形式, 记
阅读全文
摘要:【POJ2104】K th Number 题面 "virtual judge" 题解 其实就是一道主席树$sb$题 但是为了学习整体二分的需要就用整体二分写了。。。 所以主要利用此题讲一下整体二分到底是个啥(以下部分参考李煜东《算法竞赛进阶指南》): 两个例子 $Eg1$ 给定一个正整数序列$A$及
阅读全文
摘要:【LG4169】[Violet]天使玩偶/SJY摆棋子 题面 bzoj权限题呀 "良心洛谷" 题解 cdq分治 其实题目就是说 实时插入点,并且给定点$(x,y)$ 求$min_{i=1}^{n}$${|x x_i|+|y y_i|}$。 我们考虑$cdq$分治,如何做呢? 绝对值很丑,其实可以分别
阅读全文
摘要:【BZOJ3110】【LG3332】[ZJOI2013]K大数查询 题面 "洛谷" "BZOJ" 题解 和普通的整体分治差不多 用线段树维护一下每个查询区间内大于每次二分的值$mid$的值即可 然后再按套路做就行了 代码 cpp include include include include inc
阅读全文
摘要:【LG4309】【BZOJ3173】[TJOI2013]最长上升子序列 题面 "洛谷" "BZOJ" 题解 插入操作显然用平衡树就行了 然后因为后面的插入对前面的操作无影响 就直接在插入完的序列上用树状数组求下每个点为终点的最长上升子序就行了 然而懒得手写平衡树了 直接用了$rope$ "rope用
阅读全文
摘要:【LG3835】可持久化平衡树 题面 "洛谷" 解法一 "参考文章" ~~rope大法好~~ $rope$基本操作: 再配合二分即可实现各种操作 如何进行复制: 代码 解法二 用可持久化$trie$可以很方便地实现 代码 cpp include include include include inc
阅读全文
摘要:【NOIP2018pj】题解 $T1$ 题面 "洛谷" 题解 好像并没有什么好说的。。。 cpp include include include include include include include using namespace std; string s; int main () {
阅读全文