上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 57 下一页

2011年7月13日

sicily 1087. A Funny Game

摘要: /*当n==1||n==2时,明显先手必胜。当n==3时,明显先手必败。由于每次只可取1或2个,而取2个时,2个必须相邻,推断有:当n>3时,若n为偶数,先手无论如何取,后手可在先手对称的位置上取同等数量,于是先手必败。若n为奇数,先手取1个时,后手可在先手对称的位置上取2个,之后无论先手如何取,后手都可在先手对称的位置上取同等数量,先手必败。如果先手一开始取2个时,后手可在先手对称的位置上取1个,之后还剩下偶数个,可如上推出先手必败。故当n>3时,先手必败*/#include<iostream>#include<stdio.h>usingnamespace 阅读全文

posted @ 2011-07-13 01:57 sysu_mjc 阅读(310) 评论(0) 推荐(0) 编辑

sicily 1082. MANAGER

摘要: #include<iostream>//模拟题#include<set>usingnamespacestd;intout[100000],query[100000];boolfirst;intmain(){intmax_cost,len;while(cin>>max_cost){cin>>len;for(inti=0;i<len;++i)cin>>query[i];charch;intp=1,x,r=1;set<int>col;while(cin>>ch,ch!='e'){if(ch==& 阅读全文

posted @ 2011-07-13 00:30 sysu_mjc 阅读(355) 评论(0) 推荐(0) 编辑

2011年7月12日

sicily 1085. Longge's problem

摘要: /*设F(N)=∑gcd(i,N),1<=i<=N性质:F[P^k]=k×(P^k-P^(k-1))+P^k,P为质数(详细的证明放在后面)且F(N)是积性函数,即当GCD(M,N)=1时,有F[M×N]=F[M]×F[N],又因为一个正整数总可以表示成素数(它的质因子)的乘积:N=p1^k1*p2^k2*...*pn^kn(这里p1,p2,..pn是素数,当然相互之间是互质的)所以F(N)=F[p1^k1]*F[p2^k2]*...*F[pn^kn]=(k1×(p1^k1-p1^(k1-1))+p1^k1)*(k2×(p2^k2- 阅读全文

posted @ 2011-07-12 21:28 sysu_mjc 阅读(198) 评论(0) 推荐(0) 编辑

sicily 1088. Cows

摘要: #include<iostream>//树状数组#include<stdio.h>#include<algorithm>#include<cstring>usingnamespacestd;constintmaxn=100005;inttable[maxn],num[maxn],repeat[maxn],n,i;structCow{intst,ed;intpos;booloperator<(constCow&c)const//ed按降序排,若相同则按st升序排;用一维的树状数组table[]来处理。{if(ed==c.ed)retu 阅读全文

posted @ 2011-07-12 17:32 sysu_mjc 阅读(251) 评论(0) 推荐(0) 编辑

sicily 1089. Farey Sequence

摘要: #include <iostream> //欧拉函数, 给定n,求φ(1)到φ(n)的和using namespace std;const int max_n=1000000;long long phi[max_n+2],sum[max_n+2]; //这里数组空间起码要稍微大于max_nvoid phi_table() //欧拉函数表{ for(int i=2;i<=max_n;++i) phi[i]=0; phi[1]=1; for(int i=2;i<=max_n;++i) if(!phi[i]) ... 阅读全文

posted @ 2011-07-12 17:07 sysu_mjc 阅读(168) 评论(0) 推荐(0) 编辑

sicily 1090. Highways

摘要: // 题意:找出最小生成树的最大边#include<iostream> //最小生成树Prim算法using namespace std;struct MST //最小生成树的边{ int st,ed,w;}mst[1000];int n,edge[1000][1000];int ans; //ans保存最小生成树的最长边void Prim(){ int i,j,k; for(i=0;i<n-1;i++) //默认选择节点0加入生成树 { mst[i].st=0;mst[i].ed=i+1; mst[i... 阅读全文

posted @ 2011-07-12 16:33 sysu_mjc 阅读(306) 评论(0) 推荐(0) 编辑

sicily 1077. Cash Machine

摘要: #include<iostream> //多重背包#include<cstring>using namespace std;int cash,n,num[20],d[20],dp[100010];int main(){ while(cin>>cash>>n) { for(int i=0;i<n;++i) cin>>num[i]>>d[i]; if(cash==0||n==0) { cout<<"0\n"; continue; } memset(dp,0,sizeof(dp)); dp[ 阅读全文

posted @ 2011-07-12 11:36 sysu_mjc 阅读(198) 评论(0) 推荐(0) 编辑

sicily 1070. Hansel and Grethel

摘要: #include<iostream> //求两直线交点#include<stdio.h>#include<cmath>using namespace std;#define pi acos(-1.0)int main(){ int cases; double x1,y1,d1,x2,y2,d2,k1,k2,x,y; cin>>cases; while(cases--) { cin>>x1>>y1>>d1>>x2>>y2>>d2; //直线 y=kx+b k1=tan((450 阅读全文

posted @ 2011-07-12 11:18 sysu_mjc 阅读(238) 评论(0) 推荐(0) 编辑

sicily 1199. GCD

摘要: /*题意: 给定n和m, 求有多少x(m<=x<=n),满足 gcd(x,n)>=m. 可以利用欧拉函数来解答. 令 y = gcd ( x , n ),其中 y>=m ,则有 gcd(x/y,n/y)=1 .于是对于特定的y,我们想求有多少 x 满足 gcd(x,n)=y, 只要求出有多少 x/y 小于 n/y 且与 n/y 互质——这正是欧拉函数的定义:φ(a) 表示小于a且和a互质的正整数的个数思路: 先求出 n 大于等于 m 的因子 y ,再计算 n/y 的欧拉函数,最后相加即可*/#include<iostream> #include <ma 阅读全文

posted @ 2011-07-12 01:00 sysu_mjc 阅读(277) 评论(0) 推荐(0) 编辑

2011年7月11日

sicily 1068. Euro Efficiency

摘要: //给出6枚不同面值(在1到100之间)的硬币,通过 加减 凑出1到100的钱数,我们关心的是最少要用到几枚硬币,//最后求出平均值,并找出其中最大值BFS#include<iostream> //BFS最短路搜索#include<stdio.h>#include<algorithm>#include<queue>#include<cstring>using namespace std;int euro[20],f[200],vis[200];int main(){ int cases; cin>>cases; while 阅读全文

posted @ 2011-07-11 18:16 sysu_mjc 阅读(228) 评论(0) 推荐(0) 编辑

上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 57 下一页

导航