usaco 2.1.2 Ordered Fractions

这个题和网上一大牛学了一个很牛的方法。
自己原来的算法就是把所有的都枚举出来然后排序。
大牛的算法很简练。

 1/*
 2ID: bnugong1
 3PROG: frac1
 4LANG: C++
 5*/

 6#include<stdio.h>
 7int n;
 8void di(int a,int b,int c,int d)
 9{
10    if(b+d>n)return;
11    di(a,b,a+c,b+d);
12    printf("%d/%d\n",a+c,b+d);
13    di(a+c,b+d,c,d);
14}

15int main()
16{
17  freopen("frac1.in","r",stdin);
18  freopen("frac1.out","w",stdout);
19  scanf("%d",&n);
20  printf("0/1\n");
21  di(0,1,1,1);
22  printf("1/1\n");
23  return 0;
24}

25

posted on 2008-07-19 01:48 gong 阅读(208) 评论(0)  编辑 收藏 引用


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


<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(6)

随笔档案

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜