上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 69 下一页
摘要: 求出(1,i-1)中与i构成回文的位置的和L[i],以及 i 与(i+1,n)中构成回文的位置和R[i]。 然后枚举每一对L[i]*R[i+1],累加和就是答案。 计算L[i]和R[i],可以利用manacher结果,o(n)处理得到。 阅读全文
posted @ 2016-08-03 18:30 Fighting_Heart 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 概率DP。 阅读全文
posted @ 2016-08-03 18:27 Fighting_Heart 阅读(179) 评论(0) 推荐(0) 编辑
摘要: dp+树状数组优化。 dp[i][j]表示以a[i]结尾,最长上升序列长度为j的方案数。dp[i][j]=sum{dp[k][j-1]} 其中k<i&&a[k]<a[i]。 离散化后,可以用1000个树状数组维护。 阅读全文
posted @ 2016-08-01 19:05 Fighting_Heart 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 求逆序数。分治写法。 阅读全文
posted @ 2016-08-01 14:26 Fighting_Heart 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 分治写法。 阅读全文
posted @ 2016-08-01 13:47 Fighting_Heart 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 不会...看了题解这个公式就简单了:gcd(x^a-1,x^b-1)=x^gcd(a,b)-1。 那么只要枚举一下d,[1,n]内 gcd(a,b)=d的有几对,对答案做出的贡献为 pair[d]*(x^d-1)。 pair[d]容易计算:即[1,n/d]内 gcd(a,b)=1的有几对,那么就是2 阅读全文
posted @ 2016-08-01 10:43 Fighting_Heart 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 题意转化一下就是寻找一个数P,要求P质因素分解完后,质因素没有重复,还要保证abs(P*P-x)最小。 暴力,在sqrt(x)附近向下向上分别枚举一下。 阅读全文
posted @ 2016-08-01 10:34 Fighting_Heart 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 贪心一下。有k次机会,也就是那些数字中,最大的k-1可以不选择。答案为:sum{a[i]}-sum{最大的k-1个a[i]}+n。注意:k>=n的时候直接输出n。 阅读全文
posted @ 2016-08-01 10:31 Fighting_Heart 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 猜了一下,发现对了。n>m是一定有解的。所以最多m*m暴力,一定能找到。而T较小,所以能过。 阅读全文
posted @ 2016-08-01 10:29 Fighting_Heart 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 水题。比赛的时候用txt删了数字还有-,然后WA了。。。然后发现Philadelphia 76ers,这个队名中有数字...... 阅读全文
posted @ 2016-07-31 17:03 Fighting_Heart 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 比赛时候想了好久,不会。看了官方题解才会...... Bond是极小割边集合,去掉一个Bond之后,只会将原图分成两个连通块。 假设某些点构成的集合为 s(点集中的点进行状压后得到的一个十进制数),那么剩下的点构成的集合为 t=(1<<n)-1-s 如果s是连通的,t也是连通的,那么跨越s、t集合的 阅读全文
posted @ 2016-07-31 16:56 Fighting_Heart 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 最大权闭合子图。建图巧妙。 最大权闭合子图: 阅读全文
posted @ 2016-07-31 09:02 Fighting_Heart 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 对于一个数,可以记录3个位置:初始位置,终点位置,最右边的位置。 初始位置和终点位置容易计算。最多边的位置即为初始状态下该数的位置+该数之后还有多少数比该数小。 三个位置中的min即为leftpos,max即为rightpos 阅读全文
posted @ 2016-07-30 15:21 Fighting_Heart 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 简单dp+KMP。记dp[i]为以0--i能表达的意义种类。 如果以s[i]为结尾的后缀不匹配,那么dp[i]=dp[i-1]。 如果以s[i]为结尾的后缀匹配,那么dp[i]=dp[i-1]+dp[i-len]; (即表达第一种意思的种类数+表达第二种意思的种类数) 阅读全文
posted @ 2016-07-30 15:18 Fighting_Heart 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 这题想了1个多小时想不出来...方法真是精妙... 官方题解:0可以转化成任意整数,包括负数,显然求LIS时尽量把0都放进去必定是正确的。因此我们可以把0拿出来,对剩下 的做O(nlogn)的LIS,统计结果的时候再算上0的数量。为了保证严格递增,我们可以将每个权值S[i]减去i前面0的个 数,再做 阅读全文
posted @ 2016-07-30 15:15 Fighting_Heart 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 中国剩余定理+容斥原理。 阅读全文
posted @ 2016-07-30 15:14 Fighting_Heart 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 后缀数组。 然后按照排序完成之后的顺序,每个后缀统计贡献量。 统计第i个后缀的贡献的时候,如果这个后缀中没有X,贡献度为0。 有贡献的分3种情况考虑: 1.如果这个后缀height部分等于0(即与前一个后缀没有公共前缀),那么在height之后的部分中找到第一个X的位置pos,n-pos为贡献度。 阅读全文
posted @ 2016-07-30 15:10 Fighting_Heart 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 后缀数组。按照排序完的后缀一个一个统计。每一个后缀对答案做出的贡献为:n-SA[i]-height[i]。 阅读全文
posted @ 2016-07-30 13:42 Fighting_Heart 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 后缀数组。求可重叠的至少出现k次的最长子串。 阅读全文
posted @ 2016-07-30 12:33 Fighting_Heart 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 后缀数组。求不可重叠最长重复子串。 二分答案+验证。每一次二分,将排序完序的后缀按顺序进行分组。每组内任意两个的最长公共前缀要>=二分值。如果有一组内存在两个后缀的SA值相差大于等于二分值,那么这个二分值可行。 阅读全文
posted @ 2016-07-30 12:18 Fighting_Heart 阅读(123) 评论(0) 推荐(0) 编辑
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 69 下一页