
数论
cy41
celery cabbage
展开
-
牛客算法周周练2 D E
比赛链接:周练2乍一看可能有点问题,实际上仔细想一下就发现这两个题都是把一些简单的思维与算法结合了一下。D:7e5的规模的树,边权都为1,点权都为0。7e5次操作,每次选择一个点,将所有与他距离不超过2的点的点权都加1,然后询问当前点的点权为多少。将这个树变成有根树后,距离不超过2,有两种情况:x向他的子树走1步,或2步那么很显然把点都映射到一个bfs序列,记录每个节点的第一个儿子...原创 2020-04-15 13:42:27 · 230 阅读 · 0 评论 -
计算区间[1,x]中所有数字二进制下某一位是1的数字个数
ll sum(ll x,int y){ //[1,x]中,第y位是1的个数,y从1开始编号。 if(x==0) return 0; ll s=1LL<<y; ll cnt=x/s; ll ans=cnt*s/2; ll d=cnt*s+(1LL<<(y-1)); ll dd=x-d+1; if(dd>0) ans...原创 2020-02-08 21:28:48 · 447 阅读 · 0 评论 -
容斥求[1,n]中与x互质的数字个数
数据范围:n,x均是不超过1e18的正整数。首先对x进行质因子分解后:x=p1q1∗p2q2∗p3q3∗...∗pzqzx=p_1^{q_1}*p_2^{q_2}*p_3^{q_3}*...*p_z^{q_z}x=p1q1∗p2q2∗p3q3∗...∗pzqz,p为质因子,z的长度不会超过17个,17个质数的连乘已经到1e18的范围了。其次如果要算出与x的gcd不为1的个数的话...原创 2020-01-30 21:32:07 · 1635 阅读 · 0 评论 -
2019牛客暑期多校训练营(第五场)B-generator 1(矩阵快速幂的小技巧)
a矩阵的123次幂是不是可以拆成:a120∗a3a^{120}*a^3a120∗a3,a12a^{12}a12是不是可以拆成a10∗a2a^{10}*a^2a10∗a2,于是当我们面对一个超级大的次幂,例如长度为1e6的字符串次幂,我们可以预处理矩阵的0~9次幂出来,然后从前向后计算: int k; char s[1000009]; for(int i=0;i<len;++i){...原创 2019-08-01 21:15:04 · 257 阅读 · 0 评论 -
2019杭电多校第三场 F.Fansblog(威尔逊定理)
直接贴大佬的博客吧:Qingo呀#include<bits/stdc++.h>using namespace std;typedef long long ll;bool issu(ll x){ for(ll i=2;i<=sqrt(x);++i) if(x%i==0) return 0; return 1;}ll ksc(l...原创 2019-07-31 19:41:27 · 210 阅读 · 0 评论 -
E. Check Transcription(扩展欧几里得加双哈希)
我一度怀疑是自己的算法的问题,后来发现是哈希的模数没取好,我取了13332就过了,尼玛简直有病病,以后哈希过不掉的题多来几次哈希。题目链接:E. Check Transcription题意:给定一个01字符串,以及一个字母字符串。0代表一种字符串,1代表一种字符串,问你01串构成字母字符串有多少种方案。题目保证0至少有一个,1至少有一个。而且0,1表示的串不能相同,且不能为空串。01串...原创 2019-07-22 11:48:33 · 183 阅读 · 0 评论 -
HDU - 3949 线性基
首先求出线性基,并且进一步尽可能的使的p[i]除了第i位是1以外,取余全0,尽量使得除了主对角线其余元素都为0;之后判断线性基的秩,若秩!=元素个数,说明元素之间异或会出现0的情况,那么需要将k-1,因为此时剩余的非零向量间是无法异或出0的情况的,0是最小的异或值;假设秩为x,那么向量间相互异或的可能情况有1<<x种,若k>=(1<<x),则说明不可异或出,否...原创 2019-02-02 12:42:59 · 194 阅读 · 0 评论 -
2019牛客暑期多校训练营(第一场)H-XOR
大佬的分析:here给定n个数字,求所有子集的长度之和,子集定义为:该子集合中的所有元素异或为0。学会了另一种线性基的写法。我觉得大佬的解释非常清晰,点击上方链接跳转就好。线性基的一些性质:线性基中的数字都是线性无关的; 若一个数字无法加入线性基中,说明该数字可被线性基中的若干个数字异或而成; 对于n个数字,如果可以找到两个不同的线性基,那么这两个线性基中的数字个数一定相同...原创 2019-07-19 21:13:14 · 332 阅读 · 0 评论 -
2019杭电多校第一场 B - Operation (线性基+贪心)
题目链接:B - Operation 题意:多组数据,首先给出一个序列,然后m次操作:1.查询区间[L,R]内子集的最大异或值,2.在序列末尾插入一个数字。强制在线。学到了一种将贪心与线性基结合的思想。f[R][32] 表示将区间[1,R]内的数字加入线性基,pos[R][32]记录基内数字的位置。查询区间[L,R]可以看做查询线性基f[R][32]中位置大于等于L的基是否对答...原创 2019-07-23 20:31:50 · 319 阅读 · 2 评论 -
I.SHT的梦想
题目链接:http://acm.nuc.edu.cn/OJ/contest/show/54/1008区间修改加欧拉降幂有两种操作:给区间[L,R]加上d 输入L,R,X,输出%X的值数据范围为:1 <= n, m <= 5000001 <= l <= r <= n1 <= D<= 2e91 <= X<= 2e...原创 2019-05-23 17:28:16 · 144 阅读 · 0 评论 -
Codeforces Round #554 (Div. 2) Neko does Maths
大佬博客:https://blog.youkuaiyun.com/weixin_42757232/article/details/89526757转载 2019-04-25 21:50:43 · 169 阅读 · 0 评论