上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 57 下一页

2011年7月22日

poj 2491 Scavenger Hunt

摘要: #include<iostream>#include<string>#include<map>using namespace std;string str[500][2];int main(){ int cases,v,i; cin>>cases; for(int id=1;id<=cases;++id) { scanf("%d",&v); map<string,string> col; for(i=1;i<v;++i) { cin>>str[i][0]>>str[i][ 阅读全文

posted @ 2011-07-22 22:54 sysu_mjc 阅读(181) 评论(0) 推荐(0) 编辑

poj 2484 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>using names 阅读全文

posted @ 2011-07-22 22:53 sysu_mjc 阅读(190) 评论(2) 推荐(0) 编辑

poj 2367 Genealogical tree

摘要: #include<iostream>//简单拓扑排序usingnamespace std;int n,side[102][102],in[102],path[102];int main(){ cin>>n; int a,rear=0; for(int id=1;id<=n;++id) { while(cin>>a&&a) { side[id][a]=1; in[a]++; } } for(int i=1;i<=n;++i) if(in[i]==0) ... 阅读全文

posted @ 2011-07-22 22:52 sysu_mjc 阅读(155) 评论(0) 推荐(0) 编辑

poj 2305 Basic remains

摘要: //在b进制下,求p%m,其中m, contains up to 9 digits,所以m是在int范围内//把p和m转化为十进制数,而p边转化边模m,这样余数是以十进制来表示,再转化成b进制输出即可#include <iostream>#include <string>using namespace std;int main(){ char s1[1002],s2[10]; int m,b; while(scanf("%d",&b)&&b) { scanf("%s%s",s1,s2); m=0; int 阅读全文

posted @ 2011-07-22 22:51 sysu_mjc 阅读(177) 评论(0) 推荐(0) 编辑

poj 2239 Selecting Courses

摘要: // 题意:一共有n门课程,每门课都有对应的几个可以选择的上课时间,为星期几的第几节。// 一个时间段只能上一门课,问最多可以选择几门课#include<iostream> //二分图的最大匹配#include<cstring>using namespace std;int edge[400][100],vis[100],link[100]; int find(int a){ for(int i=1;i<=84;++i) // V1子集下标范围[1,n],V2子集下标范围[1,84] { if( edge[a][i] ... 阅读全文

posted @ 2011-07-22 22:50 sysu_mjc 阅读(190) 评论(0) 推荐(0) 编辑

poj 2191 Mersenne Composite Numbers

摘要: #include<iostream>using namespace std;bool is_prime(int a){ if(a==1) return false; for(int i=2;i*i<=a;++i) if(a%i==0) return false; return true;}long long num[100]={1},ans[10];int main(){ int n; cin>>n; for(int i=1;i<64;++i) num[i]=num[i-1]*2... 阅读全文

posted @ 2011-07-22 22:49 sysu_mjc 阅读(184) 评论(0) 推荐(0) 编辑

poj 2226 Muddy Fields

摘要: /* 题意: 有R×C方阵,'*'表示洼地,需要铺上宽度为1的木板,长度不限, 木板只能横放或竖放.木板可以重叠,但不能覆盖'.'(草地) 求覆盖所有'*'的最少木板数. 思路:将所有横向且连续(一个或以上)的'*'看成一个点并对其进行编号,所有的编号都为集合X内的编号。 同样地,将所有的竖向且连续(一个或以上)的'*'看成一个点并对其编号,所有的编号都为集合Y内的编号 对于原图里的'*',设其在横向X编号为i,在竖向Y编号为j,则在点 Xi 和点 Yj 间连一条边, 这样构成一个二分图, 阅读全文

posted @ 2011-07-22 22:49 sysu_mjc 阅读(179) 评论(0) 推荐(0) 编辑

poj 2034 Anti-prime Sequences

摘要: #include<iostream>using namespace std; bool isPrime[10002]; int prime[1000],total; //线性筛法寻找素数 void makePrime() { total=0; memset(isPrime,true,sizeof(isPrime)); for(int i=2;i<=maxn;i++) { if(isPrime[i]) prime[++total]=i; for(int j=1;j<=total&& i*prime[j]<=maxn; j++) { isPrime[i 阅读全文

posted @ 2011-07-22 22:48 sysu_mjc 阅读(284) 评论(0) 推荐(0) 编辑

poj 1730 Perfect Pth Powers

摘要: #include<iostream>#include<math.h>using namespace std;#define eps 1e-2 //其他精度数也同样可以int main(){ int n; while(cin>>n&&n) { //n有负数的可能,比如 -1073741824,正解应该是 15, (-4)^15=-1073741824 int t=n>0?1:-1; for(int i=31;i>=1;--i) { double x=ceil(pow(double(n)*t,1.0/i))*t; //向上取整 dou 阅读全文

posted @ 2011-07-22 22:47 sysu_mjc 阅读(131) 评论(0) 推荐(0) 编辑

poj 2033 Alphacode

摘要: #include<iostream>#include<string>using namespace std;int arr[10000],len,ans[10000];int dp(int id){ if(ans[id]!=-1) return ans[id]; int s; if(id==len) s=1; else if(id==len-1) s=arr[id]>0?1:0; else if(arr[id]==0) s=0; else if(10*arr[id]+arr[id+1]<=26) s=dp(id+1)+dp(id+2); else s=dp( 阅读全文

posted @ 2011-07-22 22:47 sysu_mjc 阅读(190) 评论(0) 推荐(0) 编辑

上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 57 下一页

导航