09 2018 档案

摘要:设dis[i]表示根节点到i的距离(只经过树边),再设w[i]表示i到1这条边的距离 对于u和v我们考虑两种情况 ①.当u是v的祖先 则答案为dis[v] dis[u] ②.当u不是v的祖先,明确从1到v的路径是唯一的 又分两种情况 1.u通过自己,跳到了1节点,然后走这条唯一路径,答案为w[u]+ 阅读全文
posted @ 2018-09-29 23:36 Patrickpwq 阅读(141) 评论(0) 推荐(0)
摘要:很久以前做的了,今天拿出来重写一下 "传送门" 和普通的数位dp一致的采用前缀和思想:用[0,y]的个数 [0,x 1]的个数 我们发现windy数是可以从i位推到i+1位的,假设你现在知道了[100,199],[200,299],[300,399]....[900,999]中分别的windy数个数 阅读全文
posted @ 2018-09-29 22:43 Patrickpwq 阅读(985) 评论(0) 推荐(14)
摘要:我们可以这样考虑 X 必定是由若干个立方数拼起来的 因此我们可以逆着求 只需关心每次取哪个立方数即可 设a是最大的 a 使得 a^3 不超过 m 分析样例 我们发现在第一次的时候 就可以取a或者a 1 那第一次取a 2 a 3....行不行呢? 1.用 a,剩下m a^3 2.用 a 1, X 最大 阅读全文
posted @ 2018-09-27 23:37 Patrickpwq 阅读(77) 评论(0) 推荐(0)
摘要:"传送门" 先来找一发规律 先把6张牌洗出来的各种顺序依次写下来 1 2 3 4 5 6 4 1 5 2 6 3 2 4 6 1 3 5 1 2 3 4 5 6 .... 发现是有周期性的,所以我们就看前三排好了 我们试图观察一下每个数字的走向 1:先是右移1 然后2 然后3 2:先是右移2 然后4 阅读全文
posted @ 2018-09-26 23:47 Patrickpwq 阅读(143) 评论(0) 推荐(0)
摘要:这道题真的很好啊!刚好把这几天学的东西结合在了一起 首先我们可以发现,一个k 斐波拉契数列的每一项就是普通的斐波拉契数列的倍数 因此问题转变成了k f[n] =1 (mod p) 求k 卧槽?这不就是求f[n]在mod p意义下的乘法逆元吗?? 卧槽?f[n]可以用矩阵快速幂跑出??右转洛谷P196 阅读全文
posted @ 2018-09-24 23:01 Patrickpwq 阅读(238) 评论(0) 推荐(0)
摘要:" 传送门 " 通过一段大力分析,我们发现其实转化成了 x,y + 2a || + 2b || +a,+b || +b,+a 其中,后两个操作分别最多进行一次(因为多了过后就可以转化成前两种操作) 此时我们可以联想到裴蜀定理:若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+b 阅读全文
posted @ 2018-09-15 23:01 Patrickpwq 阅读(151) 评论(0) 推荐(0)
摘要:"传送门" 大致思路: 找办法确定x的范围 我们联想到gcd,lcd对于唯一分解定理的运用 即a,b,gcd(a,b)分解质因数后,gcd(a,b)每个质因子的次数是min(在a中出现的次数,b中出现的次数) lcm变成max即可 那么也就是说 我们可以给a1,a0,b1,b0分解质因数,从而通过 阅读全文
posted @ 2018-09-13 23:17 Patrickpwq 阅读(155) 评论(0) 推荐(0)
摘要:欧拉筛,是一种可以O(n)筛出1~n范围内的素数的筛法,比naive筛的O(nlogn),埃式筛的O(nloglogn)都要快一些,还可以根据题目搞出一些最大约数啊之类的东西 代码: void Euler_pick(int n) { for(int i=2;i 阅读全文
posted @ 2018-09-09 22:46 Patrickpwq 阅读(115) 评论(0) 推荐(0)
摘要:我们不妨先来复习一下欧几里得辗转相除法是怎么求两个数的最大公约数的 证明: 代码实现 拓展欧几里得:对于不完全为0的非负整数a,b,若gcd(a,b)表示a和b的最大公约数,则必然存在整数对(x,y),是的gcd(a,b)=ax+by 证明: 代码实现: 你当前这一层所用到的x2,y2就是上一层递归 阅读全文
posted @ 2018-09-04 23:29 Patrickpwq 阅读(323) 评论(0) 推荐(0)
摘要:先画出杨辉三角,我们发现$C_{i}^{j}$都在$C_{n}^{m}$的左上角 那么怎么快速的找倍数呢,由于杨辉三角是加法递推下来的,因此从我们可以边递推边取模,如果余数为0则满足。同时维护二维前缀和,ans[i][j]——到了第i行j列的答案数量。 需要注意的:对于每一行,要加一句 ans[i] 阅读全文
posted @ 2018-09-04 00:17 Patrickpwq 阅读(128) 评论(0) 推荐(1)
摘要:"传送门" 很容易就可以看出,答案等于 $C_{k}^{n 1} a^n b^m$ (如果不懂的,可以自行研究一下${(ax+by)}^3$,${(ax+by)}^4$的系数规律) 然后...快速幂跑一下,杨辉三角一打就行了 cpp include define K 1005 define mod 阅读全文
posted @ 2018-09-04 00:10 Patrickpwq 阅读(176) 评论(0) 推荐(0)
摘要:"传送门" 读懂题意过后,我们会发现,难点就是在于最高位的选取,因为最高位的组成有w%k位,并不是简单的k位。 不过我们可以分开做,我们先算小于等于${{w} \over {k}}$的选取方案,也就是说除去最高位的。相当于就是从1~$2^k$ 1里选i个数,总方案数为 $\sum_{i=2}^{w/ 阅读全文
posted @ 2018-09-03 23:12 Patrickpwq 阅读(280) 评论(0) 推荐(0)