晓轩

博客园 首页 联系 订阅 管理

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)

2013年7月16日

摘要: HDOJ ACM DP 阅读全文
posted @ 2013-07-16 21:35 晓轩 阅读(567) 评论(0) 推荐(0)

2013年6月13日

摘要: 随机算法 阅读全文
posted @ 2013-06-13 20:48 晓轩 阅读(465) 评论(0) 推荐(0)

2013年5月13日

摘要: 把一个包含n个正整数的序列划分成m个连续的子序列。设第i个序列的各数之和为S(i),求所有S(i)的最大值的最小值是多少?例如序列1 2 3 2 5 4划分为3个子序列的最优方案为 1 2 3 | 2 5 | 4,其中S(1),S(2),S(3)分别为6,7,4,最大值为7;如果划分为1 2 3|2|5 4,最大值为9,不是最小。问题分析:能否使m个连续的子序列的和S(i)<=x,(i=1,2..m),则满足命题的最小x即为所求,可以采用贪心法,从左到右尽可能多的划分元素,可以把问题转化为递归分治问题,采用2分法,取n个正整数的和与n个正整数的最大值的中值x,若命题成立,则所求解小于等于 阅读全文
posted @ 2013-05-13 16:07 晓轩 阅读(1544) 评论(0) 推荐(0)