数论
la1la1la_
i am single
展开
-
CF500 G
题意: 有一棵树,n个点,边长为1,m个询问。每个询问(x,y,u,v)表示一个人从x开始,不停的在(x,y)间往返跑,另一个人从u开始在(u,v)间往返跑,两人每秒的速度都是1,问什么时候第一次在某个节点上相遇。 n,m<=200000#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<io原创 2017-03-31 17:39:48 · 388 阅读 · 0 评论 -
CF757 E
题意: 有函数f0,n=将n分解为两个互质的数的积的方案数f0,n=将n分解为两个互质的数的积的方案数f_{0,n}=将n分解为两个互质的数的积的方案数 fr,n=∑fr−1,u+fr−1,v2(uv=n)fr,n=∑fr−1,u+fr−1,v2(uv=n)f_{r,n}=\sum \frac{f_{r-1,u}+f_{r-1,v}}{2}(uv=n) m组询问,给出r,n,求fr,nfr,...原创 2017-01-15 09:17:05 · 1915 阅读 · 0 评论 -
bzoj3309
题意: 定义f(n)为n所含质因子的最大幂指数。求 ∑ni=1∑mj=1f(gcd(i,j))\sum_{i=1}^n\sum_{j=1}^mf(gcd(i,j)) T<=10000 1<=n,m<=10^7 题解: 先大力化式子 枚举i,j的gcd ∑nd=1f(d)∑ndi=1∑mdj=1ϵ((i,j))\sum_{d=1}^nf(d)\sum_{i=1}^{\frac{n}{d原创 2016-11-12 09:13:37 · 503 阅读 · 0 评论 -
51nod1678
题意: 这天,lyk又和gcd杠上了。 它拥有一个n个数的数列,它想实现两种操作。 1:将 ai 改为b。 2:给定一个数i,求所有 gcd(i,j)=1 时的 aj 的总和。 1 1 题解: 询问求的是∑nj=1ϵ((i,j))aj\sum_{j=1}^n\epsilon((i,j))aj,反演一发 ∑nj=1ϵ((i,j))aj\sum_{j=1}^n\epsilon((i原创 2016-11-05 10:22:53 · 363 阅读 · 0 评论 -
CF800 C
题意: 在模m的意义下,ban掉n个数。构造一个最长的数列,使得: 1、前缀之积两两不等 2、前缀之积不能出现n个被ban的值 n< m<=200000#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<iostream> #include<vector> #define N 410000原创 2017-04-17 10:08:05 · 359 阅读 · 0 评论 -
bzoj4820
题意: 给出n个互不相同长度为m的01串。有一个序列,初始为空。现在不停在序列尾部等概率添加一个0或1,直到序列后缀匹配n个串中的一个。对于每个01串sis_i,询问序列以sis_i结尾的概率。 n,m<=300#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<iostream> #defi原创 2017-04-23 20:42:42 · 859 阅读 · 0 评论 -
bzoj2219
题意: 对于给定的3个非负整数 A,B,K 求出满足 (1) X^A = B(mod 2*K + 1) (2) X 在范围[0, 2K] 内的X的个数 1 <= A, B <= 10^9, 1 <= K <= 5 * 10^8#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<iostream原创 2017-05-08 19:08:51 · 357 阅读 · 0 评论 -
CF388 D
题解: 一个自然数集合SS,如果对于所有a∈S,b∈Sa\in S,b\in S都有(a(a xorxor b)∈Sb)\in S,则称S是perfect set。给出n,问有多少个perfect set元素都小于等于n。 n<=10^9 题解: O__O 每个perfect set都可以找出一组基是吧。。 用一种奥妙重重的消元方式能使不同的perfect set消出不同且唯一的基(脑补原创 2017-01-25 17:07:10 · 1382 阅读 · 0 评论