晓轩

博客园 首页 联系 订阅 管理

2013年8月17日

摘要: #include#include#includeusing namespace std;const int SIZE=1000002;int H[SIZE];void table(void){memset(H,0,sizeof(H));int i,j,mul,cnt=0;for(i=5;i=SIZE)break;if(0==H[i]&&0==H[j]){H[mul]=1;}else{H[mul]=-1;}}}for(i=5;i>n&&n){cout<<n<<" "<<H[n]<<endl; 阅读全文
posted @ 2013-08-17 18:20 晓轩 阅读(251) 评论(0) 推荐(0)

摘要: #include#includetypedef __int64 int64;bool is_prime(int64 n){for(int64 i=2;i*i0){if(n&1)ans=ans*x%mod;x=x*x%mod;n>>=1;}return ans;}int main(){int64 p,a;while(scanf("%I64d%I64d",&p,&a)!=EOF){if(0==p&&0==a)break;if(!is_prime(p)&&a==mod_pow(a,p,p))printf(&quo 阅读全文
posted @ 2013-08-17 18:18 晓轩 阅读(128) 评论(0) 推荐(0)

摘要: #include#include#includetypedef __int64 int64;__int64 mod_pow(__int64 x,__int64 n,__int64 m){__int64 ans=1;while(n>0){if(n&1){ans=ans*x%m;}x=x*x%m;n>>=1;}return ans;}int main(){int T,H;__int64 M,a,b,sum;scanf("%I64d",&T);while(T--){scanf("%I64d",&M);scanf(&qu 阅读全文
posted @ 2013-08-17 18:16 晓轩 阅读(124) 评论(0) 推荐(0)

摘要: #include#includeusing namespace std;const int MAX=50001;int father[MAX];void Init(int n){for(int i=1;i>n>>m){ans=0;if(n==0&&m==0)break;Init(n);while(m--){cin>>x>>y;merge(x,y);}for(i=1;i<=n;i++)ans+=(father[i]==i);cout<<"Case "<<T++<<": 阅读全文
posted @ 2013-08-17 18:14 晓轩 阅读(116) 评论(0) 推荐(0)

摘要: #include#includeusing namespace std;const int MAX=30001;int father[MAX],rank[MAX],num[MAX];//num[MAX]用来维护集合元素个数void Init(int n){for(int i=0;i<=n;i++){father[i]=i;rank[i]=0;num[i]=1;}}int find(int x){while(x!=father[x])x=father[x];return x;}void merge(int x,int y){int fx,fy;fx=find(x);fy=find(y);i 阅读全文
posted @ 2013-08-17 18:12 晓轩 阅读(297) 评论(0) 推荐(0)