摘要:
题目链接 这道题的主要思想是贪心。 题目的要求用几个硬币将1~x的数都能够凑出的最少硬币个数。这里注意一下是都凑出而不是同时凑出。 先讨论什么时候无解。所有的自然数都可以用1堆砌而成。换而言之只要有1这个流氓在就可以凑齐。没有1就凑不出来1。 我们用一个数num表示我们目前凑完了sum这个数,准备凑 阅读全文
摘要:
题目链接 中国剩余定理(孙子定理)的裸题。直接放代码。 阅读全文
摘要:
题目链接 这道题求关于x的同余方程ax≡1(mod b)的最小正整数解。换而言之方程可以转换为ax+by=1,此时有y为负数。此时当且仅当gcd(a,b)|1时,方程有整数解。 于是乎这道题就变成了ax+by=gcd(a,b)即扩展欧几里得问题。如何解决这个问题呢? 由gcd的基本性质可以得出:gc 阅读全文
摘要:
题目链接 这题。高精度。恶心。难受。 那么高精度的gcd怎么做呢? 若a=b gcd(a,b)=a ①a偶b偶 gcd(a,b)=2*gcd(a/2,b/2) ②a偶b奇 gcd(a,b)=gcd(a/2,b) ③a奇b奇 gcd(a,b)=gcd(a-b,b) 嗯。这玩意就这样了。 阅读全文
摘要:
题目链接 这道题需要用到整数唯一分解定理以及约数个数的计算公式。这里我就不再阐述了。 公式可以看出,只有指数影响约数个数,那么在唯一分解出的乘式中,指数放置的任何位置都是等价的。(即 23*34*57与27*34*53的约数个数相同)但很明显指数放置位置的不同会影响乘积的大小。由于所有比n小的数的约 阅读全文
摘要:
题目链接 这是一道有关公约数、公倍数的问题。 由题可得:①gcd(x,a0)=a1 ;②lcm(x,bo)=b1 又有公式:gcd(x,y)*lcm(x,y)=x*y 代入得 b0*x=b1*gcd(x,b0) 移项得 x=b1/b0*gcd(x,b0) 从这里开始就只需要检验等式是否成立,令 i= 阅读全文
摘要:
这道题是一道数论题qwq。首先当我们把队伍里面的每一个人当成平面直角坐标系里面的点,那么这题就是求斜率不同。 什么是斜率?前面说了在平面直角坐标系中,我们将C君看为原点,那么每一个点(x,y)都有一个与之对应的y=kx,所谓斜率就是指这里的k=x/y。那么对应的k=x*p/y*p,这样的(x,y)与 阅读全文
摘要:
题目链接 emmmm2013提高组的原题。用一句话来说就是几个小朋友转圈圈爱的魔力转圈圈,一般来讲看到圈圈就是断环成链或者mod,然后这道题很明显是后者。无限制转圈根据数据的大小决定是模拟还是什么奇奇怪怪的算法。由于10k的步数,当然是快速幂。 简单推导一下可以得到删去重复走的一圈又一圈的绝对距离为 阅读全文
摘要:
题目链接 这道题试求冲突的数量,那么可以用 总方案数-不冲突数 来完成 那么从每个人考虑,第一个可能有m种宗教信仰,第二个人可能有m-1种宗教信仰,第三个也可能有m-1种宗教信仰(毕竟不冲突),所以不冲突方案为 m*[(m-1)^(n-1)] 总方案为 m^n ,所以答案直接 m^n-m*[(m-1 阅读全文
摘要:
题目链接 话不多说,这是一道质数题+完全背包。先预处理筛出质数,直接背包就行。 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int pr[205],tot 阅读全文