上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 28 下一页

2012年8月16日

NYOJ 352 数乌龟

摘要: 地址:思路:其实这个题联系的应该是对递归的理解,但是如果提交递归,会超时,所以应用公式递推的方法递归方法:会TimeLimitExceeded 1 #include<stdio.h> 2 #include<stdlib.h> 3 int f(int n) 4 { 5 if(n>=1&&n<=4) return n; 6 else 7 return f(n-1)+f(n-3); 8 } 9 int main()10 {11 int n;12 while(~scanf("%d",&n),n)13 {14 printf( 阅读全文

posted @ 2012-08-16 17:50 mycapple 阅读(256) 评论(0) 推荐(0) 编辑

2012年8月15日

NYOJ 26 孪生素数问题

摘要: 地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=26思路:筛法求孪生素数 1 //筛法求孪生素数 2 #include<stdio.h> 3 #include<math.h> 4 #include<string.h> //memset函数 5 bool visit[1000001]; //判断是否拜访过 6 int main() 7 { 8 int i,j,n,count; 9 long int m; 10 scanf("%d",&n);11 while(n--)12 {13 阅读全文

posted @ 2012-08-15 21:08 mycapple 阅读(498) 评论(0) 推荐(0) 编辑

筛法求素数

摘要: 基本思想: 用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子 为空时结束。如有: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1不是素数,去掉。剩下的数中2最小,是素数,去掉2的倍数,余下的数是: 3 5 7 9 11 13 15 17 19 21 23 25 27 29 剩下的数中3最小,是素数,去掉3的倍数,如此下去直到所有的数都被筛完,求... 阅读全文

posted @ 2012-08-15 20:30 mycapple 阅读(202) 评论(0) 推荐(0) 编辑

POJ 1979 Red and Black

摘要: 地址:http://poj.org/problem?id=1979思路:递归题目分析:输入:包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下‘.’:黑色的瓷砖‘#’:白色的瓷砖‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次当在一行中读入的是两个零时,表示输入结束。输出:对每个数据集合,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)算法分析:设f(x,y)为从点(x,y)出发能够走过的黑瓷砖总数,则 f( 阅读全文

posted @ 2012-08-15 19:14 mycapple 阅读(292) 评论(0) 推荐(0) 编辑

POJ 1664 放苹果

摘要: 地址:http://poj.org/problem?id=1664题目分析:输入:m个苹果,n个盘子,问多少种不同放法.算法分析:设f(m,n) 为m个苹果,n个盘子的放法数目,则先对n作讨论,当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即 if(n>m) f(m,n) = f(m,m) 当n<=m:不同的放法可以分成两类:1、有至少一个盘子空着,即相当于f(m,n) = f(m,n-1); 或2、所有盘子都有苹果,相当于可以从每个盘子中拿掉一个苹果,不影响不同放法的数目,即 f(m,n) = f(m-n,n). 而总的放苹果的放法数目等于两者 阅读全文

posted @ 2012-08-15 17:38 mycapple 阅读(310) 评论(0) 推荐(0) 编辑

OpenJudge 803 逆波兰表达式

摘要: 地址:http://nenu.openjudge.cn/09jiaoji/803/思路:递归,分治 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 double exp() 5 { 6 char a[10]; 7 scanf("%s",a); 8 switch(a[0]) 9 {10 case '+': return exp()+exp();11 case '-': return exp()-exp();12 case '* 阅读全文

posted @ 2012-08-15 16:56 mycapple 阅读(287) 评论(0) 推荐(0) 编辑

NYOJ 308 Substring

摘要: 地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=308题意大概就是找字符串s和它的逆序字符串的最长连续公共子序列 1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 int n,l,i,j,k; 6 char a[55],b[55],c[55][55]; 7 scanf("%d",&n); 8 while(n--) 9 {10 memset(c,0,sizeof(c));11 getchar();12... 阅读全文

posted @ 2012-08-15 11:23 mycapple 阅读(242) 评论(0) 推荐(0) 编辑

NYOJ 236 心急的C小加

摘要: 地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=236思路:还是属于贪心系列,按照长度排序,如果长度相同则按重量排序。总是找长度和重量都大于等于前一个木棒,就能计算出最短时间。 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 using namespace std; 5 struct mb 6 { 7 int len; //长 8 int weight;//重量 9 }w[10001]; //定义一个结构体数组 10 bo 阅读全文

posted @ 2012-08-15 10:29 mycapple 阅读(578) 评论(0) 推荐(0) 编辑

2012年8月14日

NYOJ 14 会场安排问题

摘要: 地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=14思路:贪心算法主要问题是时间的问题,这就需要用到ACM中常用的algorithm库函数 1 #include<stdio.h> 2 #include<algorithm> 3 using namespace std; 4 struct node 5 { 6 int first;//开始时间 7 int last; //结束时间 8 }w[10001]; 9 bool cmp(node x,node y)10 {11 if(x.last<y.last) ret 阅读全文

posted @ 2012-08-14 21:04 mycapple 阅读(320) 评论(0) 推荐(0) 编辑

NYOJ 456 邮票分你一半

摘要: 地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=456思路:以价值的总和的一半为背包容量,构建0-1背包,只要保证一半的背包容量装的价值最大就行。。因为最大也就是总价值的一半。。 1 //0-1 背包 2 #include<stdio.h> 3 #include<string.h> 4 int val[500001]; //存放当前的最大容量 5 int main() 6 { 7 int n,m,i,j,sum; 8 int a[1001]; 9 scanf("%d",&m);10 wh 阅读全文

posted @ 2012-08-14 19:55 mycapple 阅读(429) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 28 下一页

导航