数论
wzf_2000
这个作者很懒,什么都没留下…
展开
-
【bzoj2818】Gcd
题意:略 只需预处理f(T)即可。 以下为spoj的加强版(多询问): #include #define gc getchar() #define N 10000009 #define ll long long using namespace std; int T,n,m,mu[N],pri[N],pd[N],cnt; ll ans,f[N]; int read() {原创 2017-01-13 20:48:56 · 317 阅读 · 0 评论 -
【BZOJ3512】 DZY Loves Math IV
题意:(第n+1次)略首先转换:Ans(n,m)=∑i=1n∑j=1mφ(i⋅j)设s(n,m)=∑i=1mφ(n⋅i)那么Ans(n,m)=∑i=1ns(i,m)每次从1到n枚举i,然后考虑:s(n,m)=∑i=1mφ(n⋅i)然后知道了一个听说很显然的东西:如果|μ(n)|=1那么φ(nk)=∑d|n,d|kφ(nd)φ(k)所以此时s(n,m)=∑k=1n∑d|n,d|kφ(nd)φ(k)=∑原创 2017-01-20 14:09:52 · 1743 阅读 · 0 评论 -
【bzoj3561】DZY Loves Math VI
题意:(第n次)略 (依然是)lych大大的题解 (最近越来越懒了) 吐槽:我一开始用T=pd带掉了,结果那一串函数发现不是积性的(似乎)。。于是gg了。后来发现想太多了(居然不是套路)。。 #include #define gc getchar() #define ll long long #define N 500009 #define mod 1000000007 using原创 2017-01-20 13:33:06 · 488 阅读 · 0 评论 -
【bzoj3944】Sum
题意:略 神奇的杜教筛。。。 顺便当做学习好了。。 对于所求的两个函数,均有g=1 然后举一个莫比乌斯函数的例子 欧拉函数同理即可 注意long long和记录已算出的值 #include #define gc getchar() #define ll long long #define N 2000000 using namespace std; ll cnt,T,n,m原创 2017-01-15 19:18:51 · 512 阅读 · 0 评论 -
【bzoj3994】[SDOI2015]约数个数和
题意:略 然后线性筛预处理,分块搞定 #include #define gc getchar() #define N 100009 #define ll long long using namespace std; int T,n,m,pri[N],pd[N],cnt,mu[N],Min[N]; ll ans,d[N]; int read() { int x=1; cha原创 2017-01-15 19:03:12 · 338 阅读 · 0 评论 -
【bzoj3529】[Sdoi2014]数表
题意:略 考虑没有a限制 然后对于询问按a从小到大排序,f(x)从小到大插入,每次询问分块,查询g(T)的前缀和用树状数组维护,插入f(x)的值时暴力插即可 #include #define gc getchar() #define N 100009 #define ll long long #define mod (1ll<<31ll) using namespace std;原创 2017-01-15 18:32:47 · 271 阅读 · 0 评论 -
【bzoj3309】DZY Loves Math
题意:(又一次)略 懒得写过程:lych大大的题解 帖程序: #include #define gc getchar() #define N 10000009 #define ll long long using namespace std; int T,n,m,pri[N],pd[N],cnt,Min[N],Min_p[N]; ll ans,f[N]; int read() { int原创 2017-01-13 21:06:54 · 262 阅读 · 0 评论 -
【BZOJ2219】数论之神
crt+指标+原根+bsgs原创 2016-12-05 20:41:15 · 396 阅读 · 0 评论 -
【BZOJ2242】[SDOI2011]计算器
题意:(题意好像很明显) 思路:第一种ksm,第二种欧几里得拓展,第三种bsgs(其实就是模板题,然而第一次写bsgs) 代码:#include #define gc getchar() #define ll long long using namespace std; map mp; ll read() { ll x=1; char ch; while (ch=gc,ch'9') i原创 2016-12-15 14:44:33 · 268 阅读 · 0 评论 -
【BZOJ1407】 [Noi2002]Savage
题意:略 思路:从小到大枚举天数,两个人在同一处只有可能如下情况: 某个同余方程(懒得写)有解且两个解都在寿命范围之内,然后如果任意两个人出现这种情况,就是会重合 代码: #include #define gc getchar() #define N 20 using namespace std; int n,c[N],p[N],t[N]; int Max=0; int read() {原创 2016-12-15 14:50:54 · 243 阅读 · 0 评论 -
【bzoj2301】 [HAOI2011]Problem b
题意:略 显然可以转化为 然后线性筛+分块搞定 #include #define gc getchar() #define N 50009 #define ll long long using namespace std; int n,a,b,c,d,k,mu[N],pri[N],pd[N],cnt,sum[N]; int read() { int x=1; char原创 2017-01-13 20:43:17 · 228 阅读 · 0 评论 -
【BZOJ4815】 [Cqoi2017]小Q的表格
题意其实很简单f(a,b)=f(b,a) b*f(a,a+b)=(a+b)*f(a,b)原创 2017-04-25 09:46:14 · 297 阅读 · 0 评论