08 2018 档案
摘要:【BZOJ3551】Peaks加强版(Kruskal重构树,主席树) 题面 "BZOJ" Description 在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开
阅读全文
摘要:【agc023E】Inversions(线段树,动态规划) 题面 "AT" 给定,求所有满足的排列的逆序对数之和。 题解 首先如何计算排列的个数。 设表示的个数,那么满足条件的的总数就是$\prod cnt[i]
阅读全文
摘要:【CF183D】T shirt(动态规划,贪心) 题面 "洛谷" "CodeForces" 题解 的暴力懒得写了,比较容易,可以自己想想。 做法是这样的,首先我们发现一个结论: 对于某个颜色(我们就把尺寸当成染色问题好了),如果你拿的个数越多,那么它对于答案的贡献就越来越少。这个东
阅读全文
摘要:【BZOJ2423】最长公共子序列(动态规划) 题面 "BZOJ" "洛谷" 题解 今天考试的时候,神仙出题人把这道题目作为一个二合一出了出来,我除了orz还是只会orz。 对于如何求解最长的长度是很简单的。 设表示第一个串匹配到了,第二个串匹配到了
阅读全文
摘要:【BZOJ2118】墨墨的等式(最短路) 题面 "BZOJ" "洛谷" 题解 和跳楼机那题是一样的。 只不过走的方式从种变成了种而已,其他的根本没有区别了。 cpp include include include include using namespace std; define M
阅读全文
摘要:【洛谷3043】跳楼机(最短路) 题面 "洛谷" 题解 思路很妙嗷。 先只考虑只用两种移动方式,它们一定能够到达一些楼层, 那么这些楼层再只用拓展就能够计算答案。 那么我们这样子计算答案,设表示可以到达的楼层的最小值, 显然这个玩意可以最短路求,那
阅读全文
摘要:【BZOJ2463】谁能赢呢?(博弈论) 题面 "BZOJ" "洛谷" 题解 洛谷上对于难度的评级我总觉有些问题。 很多人按照代码难度而并非思维难度在评级,导致很多评级很不合理啊。。。 不说废话了。。 对于一个的棋盘,我们可以考虑用的骨牌来进行覆盖。 显然对于为
阅读全文
摘要:【BZOJ3609】人人尽说江南好(博弈论) 题面 "BZOJ" "洛谷" 题解 昨天考试的时候,毒瘤出题人出了一个博弈十合一~~然后他就被阿鲁巴了,因为画面残忍,就不再展开。~~ 这题是他的十合一中的第四问,然而我并不会做,所以自己就大力YY了一下, 首先一定有个大小为$
阅读全文
摘要:【洛谷4005】小Y和地铁(搜索) 题面 "洛谷" 有点长。 题解 首先对于需要被链接的两个点,样例中间基本上把所有的情况都给出来了。 但是还缺了一种从下面绕道左边在从整个上面跨过去在从右边绕到下面来的情况(从反过来是一样的) 然后把所有方法分类之后发现实际上只有种决策。 而种决策中,两
阅读全文
摘要:【BZOJ3064】CPU监控(线段树) 题面 "BZOJ" "洛谷" 题解 神仙出在了模拟的题目。(然而出的还是这题的升级版) ~~首先明确一点,这题是一个吉司机线段树。~~ 如果只有区间加法,区间赋值,区间最大值,那么这题很简单。 但是加上了一个区间历史最值,这就
阅读全文
摘要:【Luogu4609】建筑师(组合数学) 题面 "洛谷" 题解 首先发现整个数组一定被最高值切成左右两半,因此除去最高值之后在左右分开考虑。 考虑一个暴力 ,设表示用了个数并且能够看到个的方案数,强制最大值在最右侧。 每次添加最小的一个数放进来:$f[i][j]
阅读全文
摘要:【BZOJ4036】按位或(Min Max容斥,FWT) 题面 "BZOJ" "洛谷" 题解 很明显直接套用容斥。 设表示中最晚出现元素出现时间的期望,同理。 那么$E(max\{S\})=\sum_{T\subseteq S}( 1)^{
阅读全文
摘要:【HDU4336】Card Collector(Min Max容斥) 题面 "Vjudge" 题解 原来似乎写过一种状压的做法,然后空间复杂度很不优秀。 今天来补一种神奇的方法。 给定集合,设为中的最大值,为集合中的最小值。 那么我们可以得到
阅读全文
摘要:【LOJ2541】【PKUWC2018】猎人杀(容斥,FFT) 题面 "LOJ" 题解 这题好神仙啊。 直接考虑概率很麻烦,因为分母总是在变化。 但是,如果一个人死亡之后,我们不让他离场,假装给他打一个标记(猎人印记???) 如果在一次选择的时候选中了一个已经被打过标记的人,那么我们就重新做一次选择
阅读全文
摘要:【BZOJ2024】舞会(动态规划,容斥,高精度) 题面 "BZOJ" "洛谷" 题解 这种关系显然要先排序才不会不想影响。 设表示前个女生中,选了个女生配对,并且女生比男生高,剩余的随意匹配的方案数。 转移: $f[i][j]=f[i 1][j]+f[i 1][j 1
阅读全文
摘要:【BZOJ4710】分特产(容斥) 题面 "BZOJ" 题解 比较简单吧。。。 设表示至多有个人拿到东西的方案数。 现在要算的是恰好有个人拿到东西的方案数。 $ans=\sum_{i=1}^n ( 1)
阅读全文
摘要:【BZOJ2839】集合计数(容斥,动态规划) 题面 "BZOJ" 权限题 Description 一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得 它们的交集的元素个数为K,求取法的方案数,答案模1000000007。(是质数喔~) Inp
阅读全文
摘要:【BZOJ4035】数组游戏(博弈论) 题面 "BZOJ" "洛谷" 题解 很明显是一个翻硬币游戏的变形,因此当前局面的函数值就是所有白格子单独存在的函数的异或和。 那么,对于每一个位置考虑函数。 $SG(x)=mex_{i=1}^{n/x}\{\oplus_{j=1}^i
阅读全文
摘要:【BZOJ4025】二分图(线段树分治,并查集) 题面 "BZOJ" 题解 是一个二分图,等价于不存在奇环。 那么直接线段树分治,用并查集维护到达根节点的距离,只计算就好了。 cpp include include include include include include include us
阅读全文
摘要:博弈论总结 开头&一些基本性质 本文的大部分内容来自于的课件。() 一、必胜点和必败点 点:必败点,在双方都聪明无比的情况下(比如和在玩游戏),当前先手的人必败的情况。 点:必胜点,在双方操作都正确的情况下先手必胜的位置。 几个性质 所有
阅读全文
摘要:【HDU3595】GG and MM(博弈论) 题面 "HDU" 一个游戏由多个游戏组成,每次每个操作者必须操作所有可以操作的游戏,操作集合为空者输。 每个游戏由两堆石子组成,每次可以从较多的那一堆中取走较小那堆的数量的倍数个石子。 判断胜负。 题解 ,所以我们只需要分开考虑两堆
阅读全文
摘要:【BZOJ3576】江南乐(博弈论) 题面 "BZOJ" "洛谷" 题解 无论一堆石头怎么拆分,都并不能改变它是一个的事实。 既然每一组的都是固定的,那么我们预处理所有的可能的堆,而将石子拆分成若干堆,也只需要考虑函数的值就好了。 但是这样子求值的复杂度是$
阅读全文
摘要:【BZOJ1188】分裂游戏(博弈论) 题面 "BZOJ" "洛谷" 题解 这道题目比较神仙。 首先观察结束状态,即状态,此时必定是所有的豆子都在最后一个瓶子中。 发现每次的转移一定是拿出一棵豆子,放两颗豆子,所以一个瓶子中无论豆子数量是多少,我们都可以把所有的豆子拆开看成单个的游戏
阅读全文
摘要:【BZOJ2940】条纹(博弈论) 题面 "BZOJ" 神TM权限题。 题解 我们把题目看成取石子的话,题目就变成了这样: 有一堆个石头,每次可以取走个,每次取完之后可以把当前这堆剩下的石头分成任意数量的两堆(可以为空),不能操作者输,判定胜负。 那么这就是一个比较简单的$Mul
阅读全文
摘要:【HDU3032】Nim or not Nim?(博弈论) 题面 "HDU" 题解 模板题
阅读全文
摘要:【BZOJ1022】小约翰的游戏(博弈论) 题面 "BZOJ" 题解 游戏的模板题目。 cpp include include include include include include using namespace std; define ll long long defi
阅读全文
摘要:【HDU1848】Fibonacci again and again(博弈论) 题面 "Hdu" 你有三堆石子,每堆石子的个数是,你每次可以从一堆石子中取走斐波那契数列中一个元素等数量的石子数,两人轮流取,不能操作者输,判定先后手的胜利。 题解 根据定理,三堆石子可以拆开来看,
阅读全文
摘要:【POJ1704】Georgia and Bob(博弈论) 题面 "POJ" "Vjudge" 题解 这种一列格子中移动棋子的问题一般可以看做成一个阶梯博弈。 将一个棋子向左移动时,它和前面棋子的距离变小,和后面棋子的距离变大,并且减小的值和增大的值是相等的,因此,这个过程我们就可以等价成一个阶梯博
阅读全文
摘要:【BZOJ1299】巧克力棒(博弈论,线性基) 题面 "BZOJ" 题解 博弈的变形形式。 显然,如果我们不考虑拿巧克力棒出来的话,这就是一个裸的博弈。 但是现在可以加入巧克力棒。加入巧克力棒的意义是修改当前的异或和。 如果不能够改变当前先后手赢的状态的话,那么必定不能够拿出一个
阅读全文
摘要:题面 "洛谷" 题解 游戏模板题
阅读全文
摘要:题面 "HDU1527 取石子游戏" "洛谷2252 取石子游戏" 题解 裸的威佐夫博弈 cpp include include using namespace std; const double phi=(sqrt(5)+1)/2; int a,b; int main() { ios::sync_
阅读全文
摘要:题面 "HDU" 题解 模板题 cpp include using namespace std; int T,n,m; int main() { ios::sync_with_stdio(false); cin T; while(T ) { cin n m; if(n%(m+
阅读全文
摘要:【CF888G】Xor MST(最小生成树,Trie树) 题面 "CF" "洛谷" 题解 利用或者算法都很不好计算。 然而我们还有一个叫啥来着?啥啥的算法,就叫算法吧。 思想是对于每个点找到一条最小边,并且将这条边连上,不难证明每次至少连上了个点。
阅读全文
摘要:长链剖分学习笔记 简介 长链剖分也是一种树链剖分,平时我们说树链剖分,一般都是直接默认为轻重链剖分。 轻重链剖分的优秀性质在于从任意一个点开始,向上跳跃,跳过的重链数量不会超过级别。 这样子可以很优秀的解决两点之间链的问题。 对于解决一些子树的信息问题,我们可以用$dsu\ on\ tre
阅读全文
摘要:【COGS2652】秘术「天文密葬法」(长链剖分,分数规划) 题面 "Cogs" 上面废话真多,建议直接拉到最下面看一句话题意吧: 给个树,第i个点有两个权值ai和bi,现在求一条长度为m的路径,使得Σai/Σbi最小 题解 看到这个式子就是裸的分数规划吧。。。 二分一个答案,式子变成了找一条
阅读全文
摘要:【CF1009F】Dominant Indices(长链剖分) 题面 "洛谷" "CF" 翻译: 给定一棵个点,以号点为根的有根树。 对于每个点,回答在它子树中, 假设距离它为的点有个,求最大的,并且输出,如果有多个相同,输出最小的。 题解
阅读全文
摘要:【BZOJ3653】谈笑风生(长链剖分) 题面 "BZOJ" "洛谷" 权限题啊。。。。 题解 首先根据题目给的条件,发现都要是的父亲。 所以这三个点是树上的一条深度单增的链。 因为之间距离不超过,并且被钦定了,所以只有两种情况: 一种是是的祖先,贡
阅读全文
摘要:【BZOJ3252】攻略(长链剖分,贪心) 题面 "BZOJ" 给定一棵树,每个点有点权,选定个叶子,满足根到个叶子的所有路径所覆盖的点权和最大。 题解 一个假装是对的贪心: 每次选择最大的路径,然后将路径上所有点的权值清零。 那么我们可以用长链剖分来实现这个贪心。 链长改为最大的路径权
阅读全文
摘要:【BZOJ4559】成绩比较(动态规划,拉格朗日插值) 题面 "BZOJ" "洛谷" 题解 显然可以每门课顺次考虑, 设表示前门课程恰好碾压了个的方案数。 那么,思考转移,显然是原来碾压了个人,但是在考虑到这一门课程的时候有些人没被碾压了, 所
阅读全文
摘要:【BZOJ3622】已经没有什么好害怕的了(动态规划,容斥) 题面 "BZOJ" 题解 很明显的,这类问题是要从至少变成恰好的过程,直接容斥即可。 首先我们要求的是(糖果 药片)=(药片 糖果)+k,再加上保证不存在相同的数, 所以(糖果 药片)+(药片 糖果)=n,解出(糖果 药片)=$\frac
阅读全文
摘要:【CF710F】String Set Queries(二进制分组,AC自动机) 题面 "洛谷" "CF" 翻译: 你有一个字符集合,初始为空, 有三种操作: 往中加入一个串;从中删除一个串;给定一个串,询问中的串在中总共出现了多少次。 题解 询问显然就是将放
阅读全文
摘要:【BZOJ4140】共点圆加强版(二进制分组) 题面 "BZOJ" 题解 我卡精度卡了一天。。。。 之前不强制在线的做法是分治,维护一个凸壳就好了。 现在改成二进制分组,每次重建凸壳就好了。。 cpp include include include include include incl
阅读全文
摘要:【BZOJ2989】数列(二进制分组,主席树) 题面 "BZOJ" 权限题啊。。。 Description 给定一个长度为n的正整数数列a[i]。 定义2个位置的graze值为两者位置差与数值差的和,即graze(x,y)=|x y|+|a[x] a[y]|。 2种操作(k都是正整数): 1.Mod
阅读全文
摘要:【BZOJ4543】Hotel加强版(长链剖分) 题面 "BZOJ,没有题面" "洛谷,只是普通版本" 题解 原来我们的做法是设表示以为根的子树中,距离的深度为的点的个数,这样子可以每次在处合并答案。 然后长链剖分优化一下,就变成了$O(
阅读全文
摘要:【BZOJ2989】数列(CDQ分治) 题面 "BZOJ" 权、。、。、权限题。。 题解 Description 给定一个长度为n的正整数数列a[i]。 定义2个位置的graze值为两者位置差与数值差的和,即graze(x,y)=|x y|+|a[x] a[y]|。 2种操作(k都是正整数): 1.
阅读全文
摘要:题面 给定一棵树,每次询问一个点的次祖先,强制在线。 "Vijos" 题解 "长链剖分" 。 ~~链接暂时咕咕咕了。~~ 现在可以戳链接看题解了
阅读全文
摘要:【BZOJ5334】数学计算(线段树) 题面 "BZOJ" "洛谷" 题解 简单的线段树模板题??? 咕咕咕。 cpp include include include include include include using namespace std; define ll long long d
阅读全文
摘要:【BZOJ1048】分割矩阵(记忆化搜索,动态规划) 题面 "BZOJ" "洛谷" 题解 一个很简单的,写成记忆化搜索的形式的挺不错的。 cpp include include include include include include using namespace std; inli
阅读全文
摘要:【BZOJ1054】移动玩具(搜索) 题面 "BZOJ" "洛谷" 题解 这种小清新搜索题写出来好舒服啊。 要是原来的我来写代码肯定又臭又长吧。。 cpp include include using namespace std; queue Q; int pw[16],st[13&&!(u&pw[i
阅读全文
摘要:【BZOJ1041】圆上的整点(数论) 题面 "BZOJ" "洛谷" 题解 好神仙的题目啊。 "安利一个视频,大概是第到分钟的样子" 因为要质因数分解,所以复习了一下 cpp include include include include include i
阅读全文
摘要:【BZOJ1034】泡泡堂(贪心) 题面 "BZOJ" "洛谷" 题解 很基础的贪心,然而我竟然没写对。。。身败名裂。 大概就是类似田忌赛马。 先拿看当前最大值是否能否解决对面最大值,否则检查能否用最小值来兑掉。 差不多类似把,有点点区别。 cpp include include include i
阅读全文
摘要:题面 "BZOJ" "洛谷" 题解 大概就是分个块,然后每块取平均数算贡献啥的。 BZOJ上过不去??? cpp include include using namespace std; define MAX 100100 int n,sqr,blk[MAX]; double a,A,m[MAX],
阅读全文
摘要:【BZOJ1046】上升序列(动态规划,贪心) 题面 "BZOJ" "洛谷" 题解 我一开始看错题了,一度以为是字典序最小的序列。 最后发现它要求的字典序是位置的字典序最小。 那就很好办了。 设表示以开头的长度,用转移。 然后每次询问暴力贪心即可。
阅读全文
摘要:【BZOJ1052】覆盖问题(贪心) 题面 "BZOJ" "洛谷" 题解 这题好神仙啊。 很明显可以看出来要二分一个边长。 那么如何呢? 我们把所有点用一个最小矩形覆盖, 那么必定每个边界上都至少存在一个点, 但是我们有个边界,但是只有个矩形, 意味着至少有一个矩形卡住了两
阅读全文
摘要:【BZOJ3293】分金币(贪心) 题面 "BZOJ" "洛谷" 题解 和上一题一样啊。 cpp include include include using namespace std; define ll long long define MAX 100010 inline int read()
阅读全文
摘要:【BZOJ1045】糖果传递(贪心) 题面 "BZOJ" "洛谷" 题解 秉承者娱乐精神,我们必须写一个费用流,并且相信信仰跑不过去。 于是写了一个费用流如下:(您可以无视此份代码) cpp include include include include include include i
阅读全文
摘要:【BZOJ1029】建筑抢修(贪心) 题面 "BZOJ" "洛谷" 题解 感觉自己已经不会贪心了。 很明显的一个想法是按照终止时间排序,然后能选则选。 但是这样子可能会因为前面选择了一个修理时间很长的,导致现在这个不能选。 那么我们加一个大根堆,把所有已经选择的修理时间全部压进去。 如果当前这个不能
阅读全文
摘要:【BZOJ3534】重建(矩阵树定理) 题面 "BZOJ" "洛谷" 题解 这。。。。 矩阵树定理神仙用法???? cpp include include using namespace std; define ll long long define eps 1e 8 int n; double g
阅读全文
摘要:【BZOJ2654】Tree(凸优化,最小生成树) 题面 "BZOJ" "洛谷" 题解 这道题目是之前的时候写的,忽然发现自己忘记发博客了。。。 这个万一就是一个凸优化, 给所有白边二分一个额外权值,并且给边权加上这个权值。 然后跑最小生成树,将限制问题转换为判定问题即可。
阅读全文
摘要:【CF125E】MST Company(凸优化,最小生成树) 题面 "洛谷" "CF" 题解 第一眼看见就给人丽洁姐那道一样的感觉。 那么二分一个权值,加给所有有一个端点是的边, 然后跑最小生成树一下就好了。 cpp include include include i
阅读全文
摘要:【BZOJ4027】兔子与樱花(贪心) 题面 "BZOJ" "洛谷" 题解 很直观的一个感受就是对于每个节点, 考虑它的所有儿子,如果能删就删。 那么我们把所有儿子按照给删去后给父亲的贡献从小往大排序, 能删就删即可。 cpp include include using namespac
阅读全文
摘要:题面 "UOJ" 题解 模板qaq cpp include include include include include include include include include include using namespace std; define ll long long define
阅读全文
摘要:【CF938G】Shortest Path Queries(线段树分治,并查集,线性基) 题面 "CF" "洛谷" 题解 吼题啊。 对于每个边,我们用一个维护它出现的时间, 发现询问单点,边的出现时间是区间,所以线段树分治。 既然路径最小值就是异或最小值,并且可以不是简单路径, 不难让人想
阅读全文
摘要:【BZOJ1150】数据备份(动态规划,凸优化) 题面 "BZOJ" "洛谷" 题解 在不考虑的情况下很容易 如果把考虑进状态显然是级别。 所以凸优化一下即可。 注意一下是一个下凸函数,所以是没操作一次就要减去一个权值。 cpp include include i
阅读全文
摘要:【BZOJ5311/CF321E】贞鱼/Ciel and Gondolas(动态规划,凸优化,决策单调性) 题面 "BZOJ" "CF" "洛谷" 辣鸡BZOJ卡常数!!!!!! 辣鸡BZOJ卡常数!!!!!! 辣鸡BZOJ卡常数!!!!!! 所以我程序在BZOJ过不了 题解 朴素的按照划分阶
阅读全文
摘要:【BZOJ5252】林克卡特树(动态规划,凸优化) 题面 "BZOJ(交不了)" "洛谷" 题解 这个东西显然是随着断开的越来越多,收益增长速度渐渐放慢。 所以可以凸优化。 考虑一个和相关的 这个题目可以转换为在树上选择条不相交的路径。 设表示当前点$i
阅读全文
摘要:【CF739E】Gosha is hunting(动态规划,凸优化) 题面 "洛谷" "CF" 题解 一个的很容易写出来。 我们设表示前个怪,两种球用了个的最大期望, 直接用概率转移就好了。然而这样子会TLE飞。 发现可以凸优化,对于其
阅读全文
摘要:题目地址 "Edu48" A.Death Note 翻译 你有一个无穷页的本子,每一页可以写个名字, 你在第天要写个名字,如果这一页恰好写满了,你就会翻页, 问每天的翻页次数。 题解 傻逼题,求个前缀和,然后除计算前缀翻页次数,再和前面一天减一下就好。 代码 cpp in
阅读全文
摘要:【BZOJ3294】放棋子(动态规划,容斥,组合数学) 题面 "BZOJ" "洛谷" 题解 如果某一行某一列被某一种颜色给占了,那么在考虑其他行的时候可以直接把这些行和这些列给丢掉。 那么我们就可以写出一个 设表示考虑了前种颜色,还剩下行列没被染色。
阅读全文
摘要:【BZOJ1914】数三角形(组合数,极角排序) 题面 "BZOJ权限题" "良心洛谷" 题解 这种姿势很吼啊,表示计算几何啥的一窍不通来着。 题目就是这样,正难则反,所以我们不考虑过原点的三角形, 反过来,总数减去不包含原点的三角形。 这个怎么计算呢? 我们每次先确定一个点,那么,所有在这个点和原
阅读全文
摘要:【BZOJ1853】幸运数字(搜索,容斥) 题面 "BZOJ" "洛谷" 题解 ~~成功轰下洛谷rk1,甚至超越了一个打表选手~~ 这题思路很明显吧,先搞出来所有范围内的合法数字,然后直接容斥, 容斥的话显然没有别的办法解决,只能够爆搜, 那么我们就来大力剪枝: 1.如果当前的所有选定的数的$lcm
阅读全文
摘要:【POJ2411】Mondriaan's Dream(轮廓线DP) 题面 "Vjudge" 题解 这题我会大力状压!!! 时间复杂度大概是,设表示当前第行向下伸展出去的状态为 那么每次枚举一下当前行的放法,进行转移就好了。 然后就长成了这个样
阅读全文
摘要:【CF248E】Piglet's Birthday(动态规划) 题面 "洛谷" "CodeForces" 翻译: 给定个货架,初始时每个上面有个蜜罐。 有次操作,每次操作形如,表示从货架上任意选择个蜜罐试吃(吃过的也还能吃),吃完后把这个蜜罐放
阅读全文