摘要:矩阵幂次之和。 自己想着想着就想到了一个解法,但是还没提交,因为POJ崩了,做了一个FIB的前n项和,也是用了这个方法,AC了,相信是可以得。 提交了,是AC的 http://poj.org/problem?id=3233 我的思路是: 首先原矩阵保留着,然后需要扩大一倍 需要求1 >1的路径数 <
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5172 判断一个区间是否为全排列是: 1、区间总和 = (1 + R - L + 1) * (R - L + 1) / 2; 2、区间没有重复数字 记录数组a[i]表示第i个数上一次在那个位置出现。 那么最需要在[
阅读全文
摘要:http://codeforces.com/problemset/problem/375/D 树莫队就是把树用dfs序变成线性的数组。 (原数组要根据dfs的顺序来变化) 然后和莫队一样的区间询问。 这题和普通莫队有点区别,他需要的不单单是统计区间元素种类个数,是区间元素种类个数 >= k[i]的个
阅读全文
摘要:https://csacademy.com/contest/round-39/task/seven-segment-display/ 可以知道,只有1是无解 而且肯定是选出来的位数约小越好。 位数 = (k + 6) / 7,因为总是可以通过买7来最大化缩小位数 然后枚举每一位选什么,选的时候,需要
阅读全文
摘要:https://www.hackerrank.com/contests/101hack38/challenges/sorted-subsegments/problem 首先要注意到可以二分答案,比如当前位置是4,二分答案是2,是可以的,往大的找找就好。 然后把 >= 2的变成1, < 2的变成0,然
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1561 做树形dp比较小。 先上网学习下,总结下套路。 dp[i][j]表示在第i个节点,有j个名额选的时候的最大ans, 初始值dp[i][1 tot] = val[i],也就是每一个节点,有1、2、3、。。to
阅读全文
摘要:http://codeforces.com/problemset/problem/527/C 这题总体思路就是,每画一条线,然后就找到x间距的最max值和y间距的最max值,相乘就是当前的ans 那么我需要维护这样的一个数列,每次往里面添加一个元素,然后查询相邻两个元素的差值的最大值。 倒着做比较简
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2002 维护cnt[i]表示第i个节点,跳出他所属于的块的最小步数, to[i]表示第i个节点,跳出他所属的块的时候,去到那一个位置。 那么, 查询:复杂度O(sqrt(n)),不断 ans += cn
阅读全文
摘要:http://gdutcode.sinaapp.com/problem.php?id=1160 http://acm.hdu.edu.cn/showproblem.php?pid=4479 35 51 2 12 3 23 4 31 4 44 5 45 51 2 22 3 33 4 41 4 54 5
阅读全文
摘要:http://acm.uestc.edu.cn/#/problem/show/1171 颠覆了我求gcd的思路,以前的都是mobius求gcd = 1的,现在的这个能求所有的。 设ans[i]表示gcd = i的集合数。 那么需要求ans[k],我们需要知道所有k、2*k、3*k......的元素的
阅读全文
摘要:不写了,10年以后再回来写。 http://codeforces.com/gym/100221/attachments H题
阅读全文
摘要:一直都说学莫队,直到现在才学,训练的时候就跪了 T_T,其实挺简单的感觉。其实训练的时候也看懂了,一知半解,就想着先敲。(其实这样是不好的,应该弄懂再敲,以后要养成这个习惯) 前缀异或也很快想出来,结果没弄好边界,也是对前缀异或和莫队的不熟练。 CF 的E题,给定区间中有多少子区间个数异或等于k 容
阅读全文
摘要:http://codeforces.com/contest/831/problem/C 做的时候想不到,来了个暴力。 对于每个b[i],枚举每一个a[i],就有1个可能的情况。 然后用vector存起来,再判断。理论复杂度爆咋,过了综测717ms 正确的思路就是排一个序。 预处理前缀和suma_i,
阅读全文
摘要:http://codeforces.com/contest/828 C题直接的思路是模拟把整个字符串都覆盖上去,已经覆盖的,就不需要再覆盖就是了。 这个套路出过很多次了,是一个类似并查集的东西,也就是并查集维护线段吧,我直接dfs回溯弄也可以。 设tonext[i]表示第i个位置的下一个空位是什么,
阅读全文
摘要:http://poj.org/problem?id=1201 TLE了很久,因为用了cin..... 思路和其他差分约束差不多,http://www.cppblog.com/menjitianya/archive/2015/11/19/212292.html 如果区间[a, b]中至少有c个元素,如
阅读全文
摘要:http://codeforces.com/contest/160/problem/D base on 克鲁斯卡尔, 首先每次都是对权值相同的边进行统一处理,假如加入了当前这条边出现了回路,那就能确定这条边是none的。 否则,让它加入进图,(先不合并),然后找到这个图的桥,那些就是any的,其他都
阅读全文
摘要:https://csacademy.com/contest/round-36/summary/ C题是一个贪心,最坏情况是,一开始肯定是每一对袜子都抽一个,然后就需要N个袜子了。后面的情况就是相同的了。 就是,整个数组变成了1、1、1、1、1、1、1、1、1这样,之后任意拿一个袜子,都会增加1pai
阅读全文
摘要:https://www.vijos.org/p/1002 设dp[i]表示跳到了第i个点,需要的最小的步数。 所以复杂度O(L * T), 不行 注意到T最大是10, 所以dp[i]最多只由10项递推过来。 考虑上面的那个情况,如果两个相邻的石头距离大于10,那么其实是没意义的,比如上面那两个空的1
阅读全文
摘要:DATAS SEGMENT ;此处输入数据段代码 arr db 200 dup(?) len db 0 time db 0 ni db 0 ; 线性同余法生成随机数 nii = (A * ni + B) % p nii db 0 p db 36 A db 13 B dw...
阅读全文
摘要:http://www.ifrog.cc/acm/problem/1137 和差化积公式, 变成2 * sin((x + y) / 2) * cos((x - y) / 2) + sin(n - (x + y)) 然后很重要的一个就是cos(x) = cos(-x) 这样,枚举x + y的取值i,当x
阅读全文