上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 65 下一页
摘要: A:签到。 B:仅当只有一种字符时无法构成非回文串。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace 阅读全文
posted @ 2018-12-16 00:46 Gloid 阅读(168) 评论(0) 推荐(0) 编辑
摘要: A:对于每个B,会和其右边的每个W交换一次。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std 阅读全文
posted @ 2018-12-15 22:28 Gloid 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 显然集合后相对位置不变最优。主席树上二分向左和向右的分界点即可。注意主席树的值域。我怎么天天就写点一眼题啊。 阅读全文
posted @ 2018-12-15 17:03 Gloid 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 对于一个序列,重排后有序的概率显然是∏cnti!/n!,其中cnti为第i种数出现次数。要使概率最小,显然应该让各种数字尽量平均分配。剩下的是div2BC左右的大讨论。 阅读全文
posted @ 2018-12-15 15:47 Gloid 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 可以发现这个过程非常类似埃氏筛,将在该区间内没有约数的数定义为质数,那么也就是求每种方案中选完所有质数的最早时间之和。 于是先求出上述定义中的质数个数,线性筛即可。然后对每个最短时间求方案数,非常显然的组合数。最好特判一下l=1的情况,毕竟如果1作为质数会有奇怪的事。 我的线性筛……跑的几乎跟埃氏筛 阅读全文
posted @ 2018-12-15 14:43 Gloid 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 由裴蜀定理,子集S有解当且仅当gcd(S,P)|w。 一个显然的dp是设f[i][j]为前i个数gcd为j的选取方案。注意到这里的gcd一定是P的约数,所以状态数是n√P的。然后可以通过这个得到gcd是j约数的选取方案。复杂度O(n√PlogP)。 考虑优化。注意到每个数取gcd后的贡献仅与其和P的 阅读全文
posted @ 2018-12-15 13:59 Gloid 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 贝尔福特曼(?)的方式相当于每次将所有与源点直接相连的点的影响区域向两边各扩展一格。显然每个点在过程中最多更新其他点一次且这些点构成一段连续区间。这个东西二分st表查一下就可以了。注意某一轮中两点都更新某节点的情况。 阅读全文
posted @ 2018-12-14 22:13 Gloid 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 显然答案为Σkb·(n-k)a·C(n-k+1,k)。并且可以发现ΣC(n-k,k)=fibn。但这实际上没有任何卵用。 纯组合看起来不太行得通,换个思路,考虑一个显然的dp,即设f[i][j][0/1]为前i为选了j个1其中第i位是0/1的方案数。这样当然能求出答案,复杂度O(n2)。 注意到ab 阅读全文
posted @ 2018-12-14 00:20 Gloid 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 显然最优走法是先一直停在初始位置然后一次性走完一圈。将序列倍长后,相当于找一个长度为n的区间[l,l+n),使其中ti+l+n-1-i的最大值最小。容易发现ti-i>ti+n-(i+n),所以也就相当于是后缀最大值最小。设ti-i=ai,即要求min{l+max{al..2n}}+n-1 (l=1. 阅读全文
posted @ 2018-12-13 13:27 Gloid 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 用线段树对每种长度的区间维护权值和。 考虑区间[l,r]+1对长度为k的区间的贡献,显然其为Σk-max(0,k-i)-max(0,k-(n-i+1)) (i=l~r)。 大力展开讨论。首先变成Σk-Σmax(0,k-i)-Σmax(0,k-(n-i+1)) (i=l~r)。 第一部分是一个常数,线 阅读全文
posted @ 2018-12-12 22:45 Gloid 阅读(273) 评论(0) 推荐(0) 编辑
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 65 下一页