A Za, A Za, Fighting...

坚信:勤能补拙

PKU 1664 放苹果

问题:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1664

思路:
就是根据题意进行DFS,要注意的是如何避免重复: 所放苹果数目递减
居然一会就AC了哈哈,暑假的锻炼还是有些成果的:)

代码:
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 int n, m;
 5 int total;
 6 
 7 void
 8 dfs(int level, int left, int last)
 9 {
10     int i, up;
11     if(level==n) {
12         if(left == 0)
13             ++total;
14         return;
15     }
16     up = left<last ? left : last;
17     for(i=up; i>=0; i--)
18         dfs(level+1, left-i, i);
19 }
20 
21 int
22 main(int argc, char **argv)
23 {
24     int tests;
25     scanf("%d"&tests);
26     while(tests--) {
27         scanf("%d %d"&m, &n);
28         total = 0;
29         dfs(0, m, m);
30         printf("%d\n", total);
31     }
32 }

posted on 2010-09-03 22:48 simplyzhao 阅读(254) 评论(0)  编辑 收藏 引用 所属分类: B_搜索


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜