数论
文章平均质量分 54
_kikyou-
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #757 C. Divan and bitwise operations(组合数学)
传送门有一个隐藏的序列,每个数位于[0,2^30),给出m条信息形如l,r,x,表示[l,r]区间元素按位或的结果,保证每个位置都会涉及到。问这个序列所有子序列的异或结果之和。首先想到是二进制下每一位单独考虑贡献,假设第i位有k个1,那么一个子序列能够产生贡献当且仅当里面选了奇数个1,所以第i位的贡献为:2^i * v * 2^(n-k)其中v=每一项的含义:2^i :二进制第i位,v:组合数,2 ^(n-k):每个0都有选和不选两种情况。而v可以根据二项式定理推出来就等于2^(k-原创 2021-12-06 21:15:13 · 279 阅读 · 0 评论 -
P2398 GCD SUM (欧拉函数)
传送门我们可以从1开始枚举最大公约数,枚举到n,求出满足gcd(x,y)==i,1<=x,y<=n,的x,y对数m,i*m累加起来就是答案。问题是如何求满足gcd(x,y)==i,1<=x,y<=n,的x,y对数呢?我们知道满足gcd(x,y)==1,1<=x,y<=n,的x,y对数是...原创 2021-11-18 13:54:02 · 190 阅读 · 0 评论 -
Educational Codeforces Round 81 D. Same GCDs (欧拉函数)
传送门由于a,m都是给定的,所以记d=gcd(a,m) .由辗转相除法得 gcd(a+x,m)=gcd((a+x)%m , m)由于0<=x<m,a>=1所以(a+x)%m的范围是[0,m-1]记t=(a+x)%m,0<=t<=m-1,我们要求的东西就是满足gcd(t,m)==d,0<=t<m的t的个数。 我们令t=ad,m=bd,那么就等价于求满足gcd(a,b)==1,0<=a<b)的a的个数,这个值就等于b的欧拉函数值。原创 2021-11-17 21:14:44 · 216 阅读 · 0 评论 -
D. Kavi on Pairing Duty(dp)
传送门题意:给定正整数n,不超过1e6 。坐标轴上有2*n个点,分别在1 2 3…2n 。两个点连成线段,每种连法都可以得到n个线段。good pairing指,这个连法下的n个线段,任意两个线段要么长度相等,要么有包含关系。问一共有多少个good pairing.分析:我们令dp[i]表示n==i时题目给的样例特别良心,拿n==3来说:①只考虑最边上的1 6连起来,有一种连法,可以贡献1*dp[n-1]种连法②把1 2 5 6四个点连起来,且1 6不能连(避免和第①种重复),这样还是原创 2021-05-26 14:05:36 · 409 阅读 · 2 评论 -
P2568 GCD (欧拉函数+gcd)
传送门1<=n<=1e7首先考虑gcd(x,y)==1的对数,很容易想到答案就是Σphi[i],对欧拉函数求前缀和就行。但是题目要求是gcd(x,y)==p (p为素数),其等价为gcd(a*p,b*p)==p,(a b互质)于是我们可以令x==a*p,y=b*p,那么对于每个p 都只需要求出满足1<=a*p,b*p<=n,gcd(a,b)==1的a,b对数即可,这个就转化成了我们起初考虑的问题。具体做法就枚举素数j,Σpre[n/j] ,又因为a b/ b a 是不同原创 2021-05-13 16:36:10 · 515 阅读 · 0 评论 -
Short Task CodeForces - 1512G (打表)
题目链接题意:给一个数c,数n满足n所有因数的和等于c,问这样的n最小是多少。(1<=c<=1e7)分析:用素数筛的方法,枚举因子i,让i的每个倍数都加上i作为i的贡献。时间复杂度是O(nlong)#include<bits/stdc++.h>using namespace std;#define ll long long#define pii pair<int,int>const int maxn = 1e5+10;const int mx = 4原创 2021-04-11 20:15:16 · 130 阅读 · 0 评论 -
C - Row GCD CodeForces - 1459C (GCD推公式)
题目链接题意:给定序列a b,要求对每个b[i],求出gcd(a[1]+b[i],a[2]+b[i]…,a[n]+b[i])分析:gcd(x,y)=gcd(x,y-x)则要求的式子 == gcd(a[1]+b[i],a[2]-a[1],a[3]-a[2],…,a[n]-a[n-1])预处理得到gcd(a[2]-a[1],a[3]-a[2],…,a[n]-a[n-1])#include<bits/stdc++.h>using namespace std;#define ll lon原创 2021-03-23 19:34:23 · 104 阅读 · 0 评论