摘要: 又来一发水题。解同余方程而已,用类似于剩余定理的方法就O了。直接上代码:(注意要判断是否有解这种情况)#include #include #define ll long longusing namespace std;ll c[22],m[22],n,t,tot;void exgcd(ll A,ll B,ll& d,ll& x,ll& y){ if (B==0) { x=1,y=0,d=A; } else { exgcd(B,A%B,d,y,x); y-=A/B*x; }}ll china(){ bool ans=true; ll am=m[1],d,y0,z0; .. 阅读全文
posted @ 2013-10-01 18:28 092000 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 再来一发水体,是为了照应上一发水题。再次也特别说明一下,白书上的中国剩余定理的模板不靠谱。老子刚刚用柏树上的模板交上去,简直wa出翔啊。下面隆重推荐安叔版同余方程组的求解方法。反正这个版本十分强大,适用于各种情况。题目的意思是告诉你I和a,接下来有I个mi,它所对应的余数ai=mi-a;这里我用白书上的模板交上去就wa了哦,用这个版本吧。#include #include #define ll long longusing namespace std;ll c[11],m[11],n,t;void exgcd(ll A,ll B,ll& d,ll& x,ll& y){ 阅读全文
posted @ 2013-10-01 18:11 092000 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 好久没写什么数论,同余之类的东西了。昨天第一次用了剩余定理解题,今天上百度搜了一下hdu中国剩余定理。于是就发现了这个题目。题目的意思很简单。就是告诉你n个m[i],和n个a[i]。表示一个数对m[i]取模的值为a[i]。乍一看以为这个题目可以用中国剩余定理,但是看仔细了吗?这里的mi并没有说是互素的哦。肿么办?只能用安叔以前说的解同余方程的那种土方法了。上代码:(我稍微改进了一下,根据题目的具体情况)。#include #include #define ll long long#define maxn 10using namespace std;ll c[maxn],m[maxn],n,am 阅读全文
posted @ 2013-10-01 17:34 092000 阅读(278) 评论(0) 推荐(0) 编辑