计蒜客
文章平均质量分 68
alpc_qleonardo
这个作者很懒,什么都没留下…
展开
-
计蒜客 2018 ICPC宁夏 Trouble of Tyrant(单调队列+离线处理+最短路)
大致题意:给你一个包含2n-3条边和n个点的图,具体图的形状在下图中给出。告诉你每条边的长度,让你回答q个询问。每个询问包含一个数字di,意思是如果把所有边的长度都增加di,从1到n的所有路径中最短的路径长度是多少。 注意到,每次路径长度增加,对于经过路条数多的路径来说,增量更大。因此当增加很多的时候,选择经过路条数少的路径会更优。又观察到,这个图中,总共从1到n总共有n-1条路,对应经过路条数恰好也是1~n-1。因此,对于不同路条数的路原创 2018-04-23 21:55:17 · 381 阅读 · 0 评论 -
计蒜客 ICPC沈阳网络赛 Convex Hull(容斥原理 + 莫比乌斯函数)
大致提议:求题目中所给式子的求和。真的是非常非常非常简单的一道题目,式子都推对了,我竟然去想杜教筛而没有想容斥……根据函数的定义,很容易发现这个函数其实是或者说。然后对于题目给的式子,我们可以交换一下求和次序,可以得到: 然后把它拆开成为两部分: ...原创 2018-09-18 22:03:41 · 385 阅读 · 0 评论 -
计蒜客 ICPC焦作网络赛 Modular Production Line(区间k覆盖 + 最小费用最大流)
大致题意:给你N个机器,可以生产M个物品,每个物品i生产出来需要区间[li,ri]内的机器一起工作。可以产生wi的利润。每个物品只能生产一次,每个机器最多只能工作k次,现在问你能够产生的最大利润。每个机器只能工作k次,每个物品只能够生产一次,求最大利润。这种问题一看显然就像是一个费用流相关的东西。经过观察分析,你可以发现,这个就是一个区间k覆盖的问题。即一个区间对...原创 2018-09-19 15:34:33 · 224 阅读 · 0 评论 -
计蒜客 ICPC徐州网络赛 Easy Math(Min25筛)
大致题意:让你求 。根据莫比乌斯函数的定义,对于mu(i)如果i可以分解为任意一个质数的平方分解,那么函数值为0。所以对于这个求和的式子来说,i有意义,当且仅当gcd(i,n)==1。而根据莫比乌斯函数的积性,当gcd(i,n)==1时,有。所以说这个mu(n)完全可以提取到外面,这样求和式子就是: ...原创 2018-09-11 08:09:53 · 533 阅读 · 0 评论 -
计蒜客 2018ICPC徐州站/gym 102012G Rikka with Intersection(组合计数 + 树链剖分 + 树状数组)
大致题意:给你一个包含n个点的树和m条路径。现在让你从这m条路径中选择k条路,使得这k条路径一定有至少一个公共交点,问选出这k条路径的方案数是多少。最朴素的想法就是,每次查看一个点的贡献,也就是枚举这个公共点,然后看有多少个路径经过这个点,组合数求一下即可。但是这个错误也是很明显的,因为有可能同样一批路径,会有超过一个的公共点,这样的话就会重复计算。显然,如果有多个公共点的话,...原创 2018-12-02 22:47:15 · 881 阅读 · 0 评论 -
计蒜客 ICPC南昌网络赛 G tsy's number(莫比乌斯反演 + 线性筛)
大致题意:对于给定的n,要你计算: 首先,我们很容易可以推出 ,那么这个式子就可以化简为: 我们令d=gcd(i,j,k),然后把欧拉函数提到外面来,可以有: ...原创 2019-04-28 22:46:35 · 285 阅读 · 0 评论 -
计蒜客 2019ICPC 南京网络赛 E K Sum(莫比乌斯反演 + 杜教筛)
大致题意:自己看吧……直接上莫比乌斯反演。 令,显然g是一个积性函数,我们考虑用杜教筛求它的前缀和。 ...原创 2019-09-02 13:00:50 · 331 阅读 · 0 评论 -
计蒜客 2019ICPC 南昌网络赛 F Megumi With String(后缀自动机)
大致题意:给你一个字符串S和一个多项式f(x),然后再告诉你一个长度。随机取这样一个长度的字符串T,如果T包含S的某个子串且这个子串的长度为len,那么T的权值就增加f(len),如果包含多个子串,那么权值为他们的和。现在问你这个T的期望权值是多少,且S不断变长,你需要求T在每个S情况下的期望。这题可以参照 HDU 6405 两题有类似之处。这里本质上相当于统计每个...原创 2019-09-14 09:39:48 · 272 阅读 · 1 评论 -
计蒜客 2019ICPC 徐州网络赛 H function(Min25筛)
大致题意:定义f(n)表示n分解质因数后,各个质因子的幂次之和,现在让你计算。显然只需要考虑质数,计算质数的贡献。我们令 那么质数p的贡献就是: 对于小于的质数,我们可以直接暴力求解。对于大于,...原创 2019-09-14 10:15:39 · 430 阅读 · 0 评论 -
计蒜客 ICPC南京网络赛 Set(字典树 + 合并 + lazy更新)
大致题意:n个集合,你要进行m个操作。总共有3种操作。第一种,合并两个集合x和y。第二张,把特定的集合里面所有的数字加一。第三种,询问在某个集合里面,对于所有数字对2的k次方取模后,有多少个数字等于x。首先,合并的话实在是有太多的方式,大部分数据结构的启发式合并包括set都可以。但是主要是第三个,所有数字对2的k次方取模,然后看结果有多少个数字等于x。仔细想想这个取模,不难发现,其实就是询问,一个集合里面,在二进制下,后k位x的数字有多少个。询问与二进制和位数有关,很容易想到用字典树。字典树的合并比较容易写原创 2018-09-07 00:14:14 · 296 阅读 · 0 评论 -
计蒜客 ICPC南京网络赛 The Great Nim Game(线性基)
大致题意:Nim游戏,是指有n堆石子,每堆石子有ai个石子,两个人轮流取,每次可以取一堆的至少一个石子,最后取不的人输。现在告诉你总共有N堆石子,这个N很大,可以有10^10000000这么大,然后每一堆的石子数量有一个产生式。你的任务是在这N堆石子中,任意选取几堆石子,使得先手必胜,问方案数。首先,根据定理,Nim游戏要使得先手必胜,必须要所有堆的石子数量的...原创 2018-09-06 20:11:17 · 337 阅读 · 0 评论 -
计蒜客 Emptying the Baltic (BFS+Dijkstra)
看起来一道很神奇的题目,最后居然很想是最短路的…… 大致题意:给你一个N*N的地图,然后每个格点的面积是1,图中标明了数字表示地形的海拔。初始的时候海拔低于0的地方都有水,然后告诉你在某一个固定的位置开一个不记大小的无底洞,水可以源源不断的流入。水流符合重力因素,现在问你最后的最多能从这个洞中流出多少水。 其实这题仔细想来,还是挺坑的,看起来像是一个简单的模拟,但是实际操作起来不那么简单。首先,知道那个开口的位置,很容易想到从开口位置开始进行广搜,拓展周围的点让水流下去。具体原创 2017-12-05 21:22:51 · 429 阅读 · 0 评论 -
计蒜客 Floppy Cube ACM/ICPC 2017 Qingdao(bfs+polya+Java大整数)
之前几篇文章也说了,这道题,与金牌就差一点…… 在赛后做了SGU 208,知道了polya定理的另外一种做法,然后在求证了 CSU Xushu Dalao 之后就知道了这题的具体做法。 昨天,无意中看到了计蒜客已经有重现的题目了,于是就按照之前所想的敲了敲。根据SGU 208的经验,我们需要对魔方的每一个小的面标号,然后手写出最基本的几个置换过程,然后搜索求出所有的置换。经过观察,我们可以发现,一个1*3*3的魔方的基础置换总共有三种,分别是整体旋转90°、某一条边旋转180原创 2017-11-13 18:24:45 · 935 阅读 · 0 评论 -
计蒜客 2018 ICPC宁夏 Continuous Intervals(线段树)
大致题意:定义连续区间,即满足区间最大值与最小值之差加一恰好等于区间数字个数的区间,是连续区间。现在给你一个数列,问你这个数列的所有子区间中有多少个连续区间。对连续区间进行量化,有区间的max-min+1==cnt,其中cnt表示区间中数字的种类数。注意到,对于任意一个区间,恒有max-min+1>=cnt,我们对式子变形,有max-min-cnt>=-1。因此,如果我们维护每一个区间的max-min-cnt的最小值,当这个最小值为-1的时候,说明存在有连续区间,这个最小值出现的次数就是连续区间原创 2018-07-23 11:26:18 · 1587 阅读 · 0 评论 -
计蒜客 2017ICPC乌鲁木齐A Coins(概率期望dp)
大致题意:总共有n个硬币,初始的时候所有的都朝下。然后进行m次投币,每次投币要投p个硬币,这p个硬币相互独立,且最后朝向正反概率相同。为了使得最后朝上的硬币最多,采取最优的投币方式。现在问你按照这种方式,最后朝上的硬币个数的期望是多少。对于这种题目,如果不能够推出一个O(1)的通项公式,那么基本就是一个概率期望dp了。对于这题,我们首先考虑怎样才是最优的投币方式,概率我们不能决定,但是我们可以选择每次投哪p个硬币。显然,每次我们投的时候都只投那些朝下的硬币,不动那些已经朝上的硬币,只有当朝下的硬币不够k个的原创 2018-07-30 11:07:16 · 355 阅读 · 0 评论 -
计蒜客 2018 ICPC宁夏 Factories (树形dp)
大致题意:给你一棵N个节点的树,然后你要在这个树种选择K个叶子节点建立工厂,使得任意两点之间的距离和要最小。典型的树形dp的题目。我们设dp[x][i]表示在x节点所包的子树内已经选择了i个叶子的最小距离和,那么有状态转移方程dp[x][i]=min(dp[x][i],dp[x][i-j]+dp[son][j]+w*j*(k-j)),其中son表示x的儿子。注意到,dp[x][i]的转移与dp[x][i-j]相关,因此如果正着循环,可能会出现一个叶子节点多次更新一个父亲的情况。所以常规的操作是编程倒着枚举j原创 2018-07-22 12:27:22 · 1560 阅读 · 0 评论 -
计蒜客 2018ICPC徐州邀请赛D Persona5(组合计数 + 分块打表)
大致题意:有n个人,每个人有一个上界ai,每一次你可以使得没有达到上限的每一个人的数值加一。显然在Σai次之后,所有的人都达到了上界。现在问有多少种增加数值的方法。考虑每一个人对应增加的次数是ai,这ai次增加的相互顺序没有贡献,显然有公式: 但问题在于,这个n很大,对应这个Σai可以到1e12的级别,求和阶乘根本没有办法。说说自己的方法。注意到模数是1e9+7,意味着如果Σai大于1e9+7,那么最原创 2018-08-29 23:20:07 · 608 阅读 · 0 评论 -
计蒜客 ICPC南京站网络赛 Skr(Manacher + 字符串哈希)
大致题意:给你一个数字串,让你找出这个串所有的回文子串转化成为的数字的和。用到回文子串,很自然而然想到用manacher算法。首先manacher算法求出每一个位置的最大回文串的半径,然后我们考虑把每一个回文串抠出来,首先判断它是否被计算过,如果没算过则直接加到结果中。这个过程直接用字符串哈希解决。那么问题就是,时间复杂度的问题了。可以证明,一个字符串的不重复的回文子串...原创 2018-09-05 20:30:51 · 307 阅读 · 0 评论 -
计蒜客 ICPC沈阳网络赛 Ka Chang(树上分块 + 树状数组)
大致题意:给你一棵有根树,有两种操作,一是把某一层的所有的节点增加一个val,二是输出一个节点所在的子树的和。普通的dfs序可以支持子树查询,但是不能支持按照深度的修改。对于一个深度,修改一次的复杂度是klogn,k为这个神的的节点个数,可以看出,如果是一个类似菊花图的东西,时间复杂度会爆炸。然后为了解决菊花图下的复杂度问题,我们考虑在修改的时候知识对某一个深度打上一个标记,然后在查询的时候,遍历对应子树的所有深度,用对应深度的点的个数乘以深度的改变量即可。但是这样在遇到链的情况下,同样复杂度退化。于是我们原创 2018-09-09 11:08:16 · 276 阅读 · 0 评论 -
计蒜客 ICPC2019 上海网络赛 C Triple(FFT + 组合计数)
大致题意:给你三组边长,让你从三组边长里面各选出一条边,问组成非严格三角形的方案有多少种。这里非严格是指,可以退化为一条直线。这题其实算是半个原题,详见HDU 4609。那道题是一组边选三条构成严格三角形,这里是三组边。其实本质上类似。参照那道题目的做法,我们枚举一条最大边,于是我们就可以知道另外两条边的和就是这条边的长度到最大长度这个区间内。我们要做的就是看,从另...原创 2019-09-16 20:38:20 · 406 阅读 · 0 评论