数论 - 伪及乱搞
yearwhk
一个沙茶的OIer...
展开
-
BZOJ 1965 快速幂 + 拓展欧几里得
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1965 AHOI2005 Day1 是一道找规律题… 不难发现初始为x的牌在经过m轮洗牌之后的位置为x*(2^k) % (n+1)。然后就是一个二元线性不定方程,拓欧解之即可。 方程为: (2^k)%(n+1)*x + (n+1)*y = L // BZOJ 1965 #inc原创 2015-12-10 20:37:56 · 469 阅读 · 0 评论 -
BZOJ 1968 - 枚举约数
枚举1..n的每个数x,加上它对答案的贡献n/x即可。 // BZOJ 1968 #include using namespace std; int n, ans; int main() { scanf("%d", &n); for(int i=1; i<=n; i++) ans+=n/i; printf("%d\n", ans); return 0;原创 2016-01-07 23:32:57 · 726 阅读 · 0 评论 -
BZOJ 2705 - 经典问题 欧拉函数
题意:求∑ni=1gcd(i,n)\sum_{i=1}^{n}gcd(i,n) 首先,gcd(i,n)gcd(i,n)肯定是nn的约数。所以我们可以考虑枚举每个nn的约数dd,然后看有多少个gcd(i,n)=dgcd(i,n)=d。这个式子又可以化成gcd(i/d,n/d)=1gcd(i/d, n/d)=1。而它,就相当于ϕ(n/d)\phi(n/d)。所以,答案就是∑d|nϕ(n/d)\sum_原创 2016-01-06 00:12:28 · 745 阅读 · 0 评论 -
BZOJ 1257 - 数学题 乱搞
先看一个乱搞的题解(但是很有启发性...): 首先是一个有趣的发现:当 i 增长很小时,k/i 值是不变的! 比如,在 i ∈[l, r]的时候,商不变,那么在这个区间内,k modi 的值将是一个公差为1的等差数列! 所以,我们枚举商,统计答案就行了! 好吧。。我们来一个严谨一点的方法。。 题目要求的是 ans = Σ(k mod i) = Σ(k-k div i * i) = n*原创 2015-12-29 22:10:58 · 376 阅读 · 0 评论 -
BZOJ 1045 (UVa 11300) 数学分析 + 结论
这道题在白书上题解相当详细了。。作个总结。。 令传递是单向的。。(传递的糖果数量可正可负) 然后列出了n-1个方程。。 然后一些奇怪的方程加减消元。。转化成了单变量的极值问题。。 是这样的。。令Ci=Ai-M(M为最终每个人手中的糖果数量,Ai为初始糖果数量) 于是ans=|x1| + |x1-C1| + |x1-C2| ... + |x1-C(n-1)| 注意它的几何意义。。 在数原创 2015-12-16 21:15:12 · 303 阅读 · 0 评论 -
BZOJ 1406 - 伪数论
本来以为用一些奇妙的枚举顺序可以直接卡过去,然后弃疗。。 由题意可得 x^2 = 1 (mod n) ==> x^2 = k*n+1 ==> (x+1)(x-1) = k*n ==> n | (x+1)(x-1) 然后枚举n的约数。设n=a*b (aa),再判断它+2是否能被a整除。反过来再判断一次。如果(x+1)和(x-1)分别获得a、b中的因子,那么一定也会被其他情况枚举到,即做到了不原创 2015-12-14 20:07:39 · 672 阅读 · 0 评论 -
BZOJ 1002 - 奇妙的题目 + 高精度
这道题有很多奇妙的方法可以搞。。最科学的当然是基尔霍夫矩阵(按照传统,“我也不知道是什么东西”),详见VFK教主的博客;还有乱七八糟的找规律,网上遍地都是。。我就把这题当作高精度练习题了。。原创 2015-12-29 00:10:35 · 464 阅读 · 0 评论 -
BZOJ 2190 - 欧拉函数的应用(数据范围不同 -> 做法不同 -> 启示)
用欧拉函数解决问题 满足(x, y)=1 (x<=n, y<=n) 的数对的个数 UVa 10214 数据范围不同 -> 做法不同 -> 启示原创 2015-12-28 23:12:05 · 389 阅读 · 0 评论 -
BZOJ 1053 - 反素数(搜索)
一个写过的题还搞了半个多小时。。羞耻MAX。。 求反素数的核心思想是“用大的(质数)不如用小的”。一个数的约数个数等于其各质因子的次数加1后的乘积,因此可以从小到大考虑每个质数,枚举其次数,DFS之即可。具体细节详见代码。 // BZOJ 1053 #include #include #include using namespace std; typedef long long L原创 2015-12-24 19:40:42 · 324 阅读 · 0 评论