摘要: 这道题目看上去不难,但我一直想不懂为什么k会比m大```我的第一感觉想试试gcd,不敢下手,题目意思还不完全懂;看了看网上的题解,发现大部分都是用容斥原理做,这东西我还没学, = =!后来明白题目意思了,也就清楚了```题解:欧几里德算法: gcd(b×t+a,b)=gcd(a,b) (t为任意整数)则如果a与b互素,则b×t+a与b也一定互素,如果a与b不互素,则b×t+a与b也一定不互素故与m互素的数对m取模具有周期性,则根据这个方法我们就可以很快的求出第k个与m互素的数 1 #include 2 using namespace std; 3 int s[10 阅读全文
posted @ 2013-08-24 23:38 Yours1103 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 上一题是欧拉函数打表,这一题赤裸裸的欧拉函数;就当熟悉下模板把;其实自己以前也没敲过``` 1 #include 2 using namespace std; 3 long long MakePhi(long long n) 4 { 5 long long res = n, i; 6 for(i = 2; i <= n; ++ i) 7 { 8 if(n % i == 0) 9 {10 res -= res / i;11 while(n % i == 0)12 ... 阅读全文
posted @ 2013-08-24 23:01 Yours1103 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 从来没有接触过完全剩余系,不会证明,知道看了别人的题解才知道要用欧拉函数;下面是证明过程:p是奇素数,如果{xi%p | 1 2 using namespace std; 3 const int maxn=65540; 4 int phi[maxn]={0}; 5 void phi_table() 6 { 7 int i,j; 8 phi[1]=i; 9 for(i=2;i<maxn;i++)10 {11 if(!phi[i])12 for(j=i;j<maxn;j+=i)13 {14 ... 阅读全文
posted @ 2013-08-24 22:22 Yours1103 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 这道题WA了我好多次,就像比赛的时候一样,都是些小错误,但oj是无情的,让我一W再W;当时正和安叔聊着天,安叔一直在批评我们平时做题很水,太依赖死东西了。以后真的不能再依赖模板了```说说这题吧。思路很容易想到```我刚刚开始直接用gcd的办法,超时了,没办法,数据很大```先算出/g=a/b;然后对g用那个Pollard_rho算法得出所有的素因数,排序,把相同的元素结合在一起;这样可以保证待会儿分解的时候不会有相同的因数;分解的时候,从g的平方根开始用dfs,很简单```贴下代码: 1 #include 2 #include 3 #include 4 #include 5 #in... 阅读全文
posted @ 2013-08-24 17:04 Yours1103 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 基本上一个裸的Miller_Rabin大素数判定和一个裸的Pollard_rho素数分解算法,当模板用吧! 1 #include 2 #include 3 #include 4 #define LL long long 5 using namespace std; 6 const int s=20; 7 int tol; 8 LL factor[100]; 9 10 LL mult_mod(LL a,LL b,LL c)//计算a*b%c; 11 { 12 LL ret=0; 13 a%=c; 14 b%=c; 15 while(b>0) 1... 阅读全文
posted @ 2013-08-24 14:57 Yours1103 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 虽然申请博客已经1个月了,但是一直没有来写,没办法,题都刷不完,哪有心思写啊``` 现在集训终于完了,有了属于自己的时间了。所以该把以前做的题,学的算法好好的整理整理了。一来顺顺思路,二来也可以给后来人提供一点经验; 恩,第一篇博文就写到这里了!不早了,洗洗睡吧``` 阅读全文
posted @ 2013-08-24 00:14 Yours1103 阅读(107) 评论(0) 推荐(0) 编辑