04 2018 档案

摘要:题目大意 本题关于兔子的一切单位均是“对”。 一对兔子从出生后第二个月起,每个月刚开始的时候都会产下一对小兔子。 把兔子按出生顺序,把兔子们从1开始标号,并且小C的兔子都是1号兔子和1号兔子的后代。如果某两对兔子是同时出生的,那么小C会将父母标号更小的一对优先标号。 m个问题:两对兔子的最近公共祖先 阅读全文
posted @ 2018-04-29 21:57 headboy2002 阅读(139) 评论(0) 推荐(0)
摘要:题目大意 给出一段序列,求其中最大公约数为1的四元组的个数。 思路 我们要用到反演、正难则反的思想。对于每一个大于1的数字$x$,求出最大公约数为$x$的四元组的个数$g(x)$,然后用排列中所有四元组的组合个数减去$\sum g(x)$即可。 直接求$g(x)$没有什么思路,但是求公约数中存在$x 阅读全文
posted @ 2018-04-28 00:17 headboy2002 阅读(235) 评论(0) 推荐(0)
摘要:题目大意 给出$r$,求圆$x^2+y^2=r^2$上坐标均为整数的点数。$n include using namespace std; define ll long long ll Gcd(ll a, ll b) { return b ? Gcd(b, a%b) : a; } void Find( 阅读全文
posted @ 2018-04-26 21:26 headboy2002 阅读(209) 评论(0) 推荐(0)
摘要:题目大意 求不大于 m 的、 质因数集与给定有n个元素的质数集有交集的自然数之和。 数据范围 1 2 3 n*m<=10^7 4 5 n<=2,m<=10^9 6 7 n<=20,m<=10^8 8 9 10 n<=20,m<=10^9 前三个点 n可能会很大。暴力枚举从1到m的每一个数看看是否满足 阅读全文
posted @ 2018-04-25 00:59 headboy2002 阅读(182) 评论(0) 推荐(0)
摘要:题目大意:维护一个可查询、修改的树,查询的是一个节点的:离它距离最近的、组成两个节点Key值的质因数存在交集的、祖先节点;修改是修改一个节点的key值。 如果组成两个Key值的质因数存在交集,则两个数的最大公因数大于 1.查询时,一个节点一个节点往树根找满足该条件的节点即可。 阅读全文
posted @ 2018-04-24 21:50 headboy2002 阅读(229) 评论(0) 推荐(0)
摘要:题目大意:求sum i(1->n) (sum j(1->n) (gcd(i,j)))。 对于每对(i,j)都来一次gcd很慢,但是我们知道,一个约数i在1~n范围内是n/i个数的约数。gcd也是个约数,如果能利用到这一点,不就可以同时处理很多对(i,j)了吗? 我们看看最大公约数等于i的数对(x,y 阅读全文
posted @ 2018-04-23 22:46 headboy2002 阅读(245) 评论(0) 推荐(0)
摘要:题目大意:给出n,求sum foreach i(1<=i<=n) (gcd(n, i))。 1~n有太多的数,但是n与m的最大公约数却有很多重复。所以我们枚举最大公约数k,然后让k乘以与n的最大公约数为k的m的个数s[k]那就好了!但是s[k]怎么求呢?如果gcd(m,n)=k,则gcd(m/k,n 阅读全文
posted @ 2018-04-22 18:56 headboy2002 阅读(173) 评论(0) 推荐(0)
摘要:题目大意 对于扑克牌的一次洗牌是这样定义的,将一叠N(N为偶数)张扑克牌平均分成上下两叠,取下面一叠的第一张作为新的一叠的第一张,然后取上面一叠的第一张作为新的一叠的第二张,再取下面一叠的第二张作为新的一叠的第三张……如此交替直到所有的牌取完。 如果对一叠6张的扑克牌1 2 3 4 5 6,进行一次 阅读全文
posted @ 2018-04-22 17:08 headboy2002 阅读(255) 评论(0) 推荐(0)
摘要:如何解方程$$ax\equiv b({\rm mod}\ m)​$$呢?因为$ax-b|m​$, 故令$ax-b=-ym​$,即$$ax+my=b​$$。根据Bezout定理,该方程有解当且仅当$\gcd(a,m)|b​$。我们把等式两边同乘以$\frac{\gcd(a,m)}{b}​$,得到$$a 阅读全文
posted @ 2018-04-22 16:42 headboy2002 阅读(610) 评论(0) 推荐(0)
摘要:题目大意:给出x∈(0,1)以及n∈(0,1e18),求sum foreach i(1<=i<=n) (x^i/i)保留四位小数的值。 用快速幂暴力求。考虑到题目只要求保留四位小数,而随着i的增大,x^1就越来越小,变化量被隐藏到四位小数后面去了。所以我们可以在适当的时候提前退出。 阅读全文
posted @ 2018-04-20 23:16 headboy2002 阅读(142) 评论(0) 推荐(0)
摘要:题目大意:给定一行n个正整数a[1]..a[n]。m次询问,每次询问给定一个区间[L,R],输出a[L]..a[R]的最大公因数。 因为gcd满足交换律和结合律,所以用线段树维护区间上的gcd值即可。 阅读全文
posted @ 2018-04-20 20:22 headboy2002 阅读(228) 评论(0) 推荐(0)
摘要:题目大意 对于不定方程a1+a2+…+ak-1+ak=g(x),其中k≥2且k∈N,x是正整数,g(x)=x^x mod 1000(即x^x除以1000的余数),x,k是给定的数。我们要求的是这个不定方程的正整数解组数。 DP(暴力)解法 定义F(p, rest)为第p个数,p及p后面的数的和为re 阅读全文
posted @ 2018-04-19 21:55 headboy2002 阅读(224) 评论(0) 推荐(0)
摘要:#include #include #include using namespace std; const int MAX_LEN = 1001, CARRY = 4, BASE = 10000; struct BigInt { private: int A[MAX_LEN]; int Len; public: void Clear() { memset(A, 0, si... 阅读全文
posted @ 2018-04-19 20:04 headboy2002 阅读(113) 评论(0) 推荐(0)
摘要:题目大意 给出m,n,对于每一个整数x∈[1,m],y∈[1,n]都有一点(x,y)。处理每个点所需要的能量为2*k+1,k为该点到原点经过的点的数量(不包括该点本身)。求处理所有点所需要的能量和。 思路 先考虑考虑暴力,即枚举每一个点,求其所需的能量。我们怎么知道一个点(x,y)的k值呢? 性质1 阅读全文
posted @ 2018-04-17 20:03 headboy2002 阅读(140) 评论(0) 推荐(0)
摘要:题目大意:给出一正整数k,求满足(x^2-x*y-y^2)^2=1且x,y∈[1,k]且x^2+y^2最大的正整数x,y。 既然x,y的范围给出来了,我们便有了暴力解法。因此,本题最适合打表找规律了! 打表代码: 一运行,发现x就是小于等于k的最大斐波那契数,y就是小于等于k的第二大斐波那契数。于是 阅读全文
posted @ 2018-04-16 22:51 headboy2002 阅读(150) 评论(0) 推荐(0)
摘要:【推式子】 【因数个数定理】 阅读全文
posted @ 2018-04-15 21:44 headboy2002 阅读(159) 评论(0) 推荐(0)
摘要:【简单反演】 阅读全文
posted @ 2018-04-15 15:35 headboy2002 阅读(126) 评论(0) 推荐(0)
摘要:题目大意:给定一个多项式(ax+by)^k,请求出多项式展开后x^n*y^m 项的系数。 将原式化为(ax+by)*(ax+by)*...①,然后将其拆解,拆解时x乘了多少次,a就乘了多少次,y,b同理。故设所求为t*a^n*b^m。因为拆解时相当于在①括号各个括号内提取出n个x,在剩余的括号内提取 阅读全文
posted @ 2018-04-15 15:23 headboy2002 阅读(122) 评论(0) 推荐(0)
摘要:题目大意:求$$ax\equiv 1(\ \mathrm{mod}\ m)$$的最小正整数解。 因为$ax-1|m$,故令$ax-1=-ym$,原方程就变成了$ax+my=1$。根据bezout定理此方程有解当且仅当$\gcd(a, m)=1$成立,然后解方程$ax+my=\gcd(a,m)$即可。 阅读全文
posted @ 2018-04-15 10:20 headboy2002 阅读(148) 评论(0) 推荐(0)
摘要:题目大意 给出数a0, a1, b0, b1,求满足gcd(a0, x)=a1, lcm(b0, x)=b1的x的个数 解法一 枚举b1的因数,看看是否满足上述条件。 怎样枚举因数 试除法。对于1~sqrt(b1)的所有数i,若其能被b1整除,则i和b1/i便是b1的质因数。 注意 是sqrt(b1 阅读全文
posted @ 2018-04-15 09:53 headboy2002 阅读(165) 评论(0) 推荐(0)