随笔分类 -  紫书第十章 数论

摘要:把k的倍数的删去(k, 2k, 3k……),但是k^2不应该删去,因为k已经删去,所以不存在某个数乘上k之后为k^2所以k^2可以留下,然后因为有k^2,所以k^3就是k^2的k倍,所以k^3要删去,但是k^4又要加回来,以此类推ans = n - n / k + n... 阅读全文
posted @ 2018-07-29 11:07 Sugewud 阅读(118) 评论(0) 推荐(0)
摘要:看了其他人博客,貌似i个盘子的方案数满足 f[i] = f[i-1] * x + y???????神来之笔貌似没有找到严格的证明……牛逼…… 如果这样的话暴力求出x和y然后递推完事#include#include#define REP(i, a, b) for(int... 阅读全文
posted @ 2018-07-27 16:01 Sugewud 阅读(176) 评论(0) 推荐(0)
摘要:我一开始以为有什么很牛逼的方法来做,然后一直没有思路后来看了https://blog.csdn.net/zju2016/article/details/78562932的博客竟然是暴搜???????????/好我服了 大致思路:素数的范围在100以内因为要求尽量小,所... 阅读全文
posted @ 2018-07-27 12:07 Sugewud 阅读(206) 评论(0) 推荐(0)
摘要:自己一直在纠结这个串的构造方法而没有观察串本身的规律…… 2的63次方用 unsigned long long然后可以发现串是递归构造的。将串分成1,1,2,4,8,16, 然后会发现s串里面1个s-2串,2个s-3串,3个s-4串最后加上s如第三个串1003是由1个... 阅读全文
posted @ 2018-07-26 15:43 Sugewud 阅读(160) 评论(0) 推荐(0)
摘要:C(n, k) = m, 固定k,枚举k这里用到了组合数的一个性质当k固定的时候,C(2 * k, k) 最小 C(m, k)最大(对于这道题而言是这样,因为大于m 就最终答案不可能为m了)所以就二分去枚举2*k到m之间了。最后注意算组合数的时候超过m可以直接返回,同... 阅读全文
posted @ 2018-07-26 14:25 Sugewud 阅读(143) 评论(0) 推荐(0)
摘要:设一次上去a层,一次下去b层,有x次上去,有(n-x)次下去则ax - (n-x)b >= 1x >= (nb+1) / (a+b) 如果可以整除, x = (nb+1) / (a+b)否则 x = (nb+1) / (a+b) +1算出x后再带到ax - (n-x... 阅读全文
posted @ 2018-07-26 10:50 Sugewud 阅读(182) 评论(0) 推荐(0)
摘要:这道题看起来很长,而实际上就是考物理可以用动能定理来算出末速度。同时注意要特判绳子比桥还长的情况。#include#include#define REP(i, a, b) for(int i = (a); i s) { double v = sqrt(2 * ... 阅读全文
posted @ 2018-07-26 10:01 Sugewud 阅读(190) 评论(0) 推荐(0)
摘要:这道题很巧妙,要把式子变一下phi(n) = n * (1 - 1 / p1) * (1 - 1 / p2)……(1 - 1 / pr) = n * ((p1-1) / p1) * ((p1-2) / p2) ……((pr-2) / pr) ... 阅读全文
posted @ 2018-07-26 09:32 Sugewud 阅读(227) 评论(0) 推荐(0)
摘要:类似于素数筛的思想去做,不然暴力会超时而且还要判重#include#include#include#define REP(i, a, b) for(int i = (a); i prime;int f[MAXN];void init(){ memset(vis, -... 阅读全文
posted @ 2018-07-25 11:48 Sugewud 阅读(151) 评论(0) 推荐(0)
摘要:这道题我已经推出00和1过两步变成00了,可我没有继续做下去……后来看了博客发现自己已经做了90%了……可惜了,以后不要轻易放弃。1的个数有个规律,就是每次都乘以2,因为0和1下一步都会变出1然后因为0和1个个数是一样的,所以1的变出1,0的也变出1最后1的个数就乘以... 阅读全文
posted @ 2018-07-25 10:38 Sugewud 阅读(141) 评论(0) 推荐(0)
摘要:大佬真的强!!https://blog.csdn.net/u014800748/article/details/45225881#include#include#define REP(i, a, b) for(int i = (a); i 0) return 0; ... 阅读全文
posted @ 2018-07-24 15:47 Sugewud 阅读(117) 评论(0) 推荐(0)
摘要:开始的时候一看这题感觉很难,觉得肯定有什么很快的办法不能暴力做(受了上一题10-13的影响)然后一看那个函数感觉无从下手。然后看了博客发现,原来这道题就是直接暴力……因为n的范围为10的7次方啊 ,不会超时自己以后要注意数据范围#include#include#inc... 阅读全文
posted @ 2018-07-24 14:39 Sugewud 阅读(179) 评论(0) 推荐(0)
摘要:首先看这道题目,我预感商数肯定是有规律的排列的,于是我打表找一下规律100 / 1 = 100100 / 2 = 50 100 / 3 = 33 100 / 4 = 25 100 / 5 = 20 100 / 6 = 16 100 / 7 = 14 100 / 8 =... 阅读全文
posted @ 2018-07-24 12:04 Sugewud 阅读(165) 评论(0) 推荐(0)
摘要:开始的时候我没有考虑1/2的概率,直接一波组合数,然后WA后来去看题解发现我们可以反过来想,求最后两个人不一样的情况这个时候肯定会抛到最后的所以每一种可能就是(0.5)^(n - 2),然后一共有C(n-2,n/2-1)种乘起来就ok了。但是这样会超时而且结果太大所以... 阅读全文
posted @ 2018-07-24 10:24 Sugewud 阅读(151) 评论(0) 推荐(0)
摘要:自己用手算一下可以发现是斐波那契数列,然后因为数字很大,用高精度以后做题的时候记得算几个数据找规律 #include#include#include#include#define REP(i, a, b) for(int i = (a); i = 10) c.d[i]... 阅读全文
posted @ 2018-07-23 15:59 Sugewud 阅读(188) 评论(0) 推荐(0)
摘要:除了根节点以外,有n-1个节点,然后就看n-1的因数有那些,所有因数加起来(递推)就好了。#include#define REP(i, a, b) for(int i = (a); i < (b); i++)using namespace std;const int ... 阅读全文
posted @ 2018-07-23 14:29 Sugewud 阅读(110) 评论(0) 推荐(0)
摘要:一个数的正约数个数等于这个数的质因数分解后每一项幂+1的积因为每个质因数的幂可以为0, 1, 2……(注意可以为0)所以就每个质因数配一个幂任意组合就可得一个正因数,根据乘法原理可得正约数个数。另外质因数分解可以不用素数筛(但可能会稍微慢一点)#include#def... 阅读全文
posted @ 2018-07-23 11:47 Sugewud 阅读(220) 评论(0) 推荐(0)
摘要:直观感觉对角线重合的时候面积最大然后可以根据方程和割补算出阴影部分的面积注意知道两点坐标,可以求出与原点形成的三角形的面积用叉乘,叉乘的几何意义以这两个向量为边的平行四边形的面积所以用叉乘除以2就可以(x1, y1), (x2, y2),叉乘为x1y2-y1x2#in... 阅读全文
posted @ 2018-07-23 11:22 Sugewud 阅读(321) 评论(0) 推荐(0)
摘要:把这个数质因数分解然后求因子个数的gcd就ok了。一些细节(1)这道题的质因数不需要存下来,每一次做完取一次gcd就ok了(2)判断奇偶用ans & 1的时候要加括号, 位运算要注意括号(3)这道题在32位带符号整数范围内,也就是说用int可以了(3)注意ans最后的... 阅读全文
posted @ 2018-07-23 10:14 Sugewud 阅读(157) 评论(0) 推荐(0)
摘要:注意要开long long如果int * int会炸那么久改成long long * int#include#include#include#define REP(i, a, b) for(int i = (a); i prime;void init(){ mems... 阅读全文
posted @ 2018-07-22 15:01 Sugewud 阅读(127) 评论(0) 推荐(0)