摘要:
被数论怒虐了一天 心力憔悴啊 感觉脑细胞已经快消耗殆尽了>_< 但是今天还是会了很多之前觉得特别神的东西比如BSGS之前听了两遍 好像都因为听得睡着了没听懂-。- 今天终于硬着头皮学会了~ 做个总结吧 免得又忘记- -BSGS:BSGS就是求 A^x=B(mod C) 0<=x<C的解(C为素数)做... 阅读全文
posted @ 2013-10-16 23:38
g_word
阅读(394)
评论(0)
推荐(0)
摘要:
由于被AK大神误导 - - 导致之前写了一个完全错误的总结 特此修改之求方程组 x=a[i](mod r[i]) 的解x即为求解方程 x=a[i]+r[i]*y联想普通方程组的解法 一直将两个方程合并成一个 最后只剩一个方程 求解即可设待合并的两个方程为 x=a1+r1*y、x=a2+r2*z合并之a1+r1*y=a2+r2*z->r1*y+r2*z=a2-a1拓展欧几里得求出(y,z)则x最小为a1+r1*y这时两方程合并为 x=a1+r1*y(mod lcm(r1,r2))就这样两两合并 如果某次(y,z)无解 则方程组无解代码: 1 scanf("%d%d",& 阅读全文
posted @ 2013-10-16 18:39
g_word
阅读(224)
评论(0)
推荐(0)
摘要:
求方程ax=c(mod b)的解可将其转换为 ax+by=c有解条件:(a,b)|c设k*(a,b)=c用拓展欧几里得求出方程ax+by=(a,b)的解(x,y)x'=k*x,y'=k*y 就是方程的一个解所以x'+i*(b/(a,b)) (i=0,1,2,..,(a,b)-1)是原方程的解证明:设sx[i]=x'+i*(b/(a,b)),sy[i]=y'-i*(a/(a,b))则需证明a*sx[i]+b*sy[i]=ca*sx[i]+b*sy[i]=a*(x'+i*(b/(a,b)))+b*(y'-i*(a/(a,b)))=ax' 阅读全文
posted @ 2013-10-16 15:48
g_word
阅读(260)
评论(0)
推荐(0)
摘要:
今天开始看orz数论了 数论一直是我最弱的一项 (一学数论就想睡觉啊啊TAT .zZ)从初三到现在每年都有学 每年都忘 于是乎做一个总结 希望能掌握神奇的数论去年noip就考了拓展欧几里得的模板题 因为不会 送了100分- -拓展欧几里得说简单了其实就是 给出方程ax+by=gcd(a,b) 求解(x,y)有学过快速求gcd的都知道 gcd(a,b)=gcd(b,a%b) 我们可以用这个性质求解假设已经知道bx+(a%b)y=gcd(b,a%b)的解(x,y)bx+(a%b)y=gcd(b,a%b)->bx+(a%b)y=gcd(a,b)->bx+(a-a/b*b)y=gcd(a, 阅读全文
posted @ 2013-10-16 13:40
g_word
阅读(195)
评论(0)
推荐(1)
摘要:
题意:有n个大臣和一个国王左右手都写了数字 让大臣们站在国王的后面 每个大臣能获得前面所有人左手上数字乘积除以该大臣右手上的数字的金钱 问如何安排大臣顺序 使得获得金钱最多的大臣获得的金钱最少题解:看到最大值的最小值 最先想到的肯定是二分答案判断答案是否可行我有一个思路(未能验证正确性) 从后往前确定某个位置上要放哪个大臣求出所有大臣左手乘积*国王左手上的数 再将大臣按左手从大到小排序 找到第一个能放在该位置的大臣(获得金钱x[i+1]*y[i+1] 那么将他们交换答案不会更差设i前所有人左手乘积为a 则交换前两大臣获得的钱分别为a/y[i]、a*x[i]/y[i+1]而交换后钱分别为a/y[ 阅读全文
posted @ 2013-10-16 00:13
g_word
阅读(561)
评论(0)
推荐(0)

浙公网安备 33010602011771号