usaco Ordered Fractions 顺序的分数(两种解法)
这题很好玩,这里有两种解法。
第一种我自己写的,先找到所有的既约真分数,然后写了一个cmp函数进行排序最后输出。我写的时候还在想这章不是搜索吗这跟搜索关系不大吧,难道是怕我们思维定式化故意出的题不是搜索题。写完后我好奇的翻了一下别人的题解。。。。。。。。。。。法雷数列!!!!!!!!!!什么鬼,于是我百度了一下。果然用的dfs。(我不知道前面还有多少题不是按照他想考我的方向来的。看来以后写出来也要看看别人写的了。)
先贴我自己写的‘
/*
ID :jinbo wu
LANG: C++
TASK:frac1
*/
#include<bits/stdc++.h>
using namespace std;
struct node
{int x,y;
}s[30000];
int gcd(int x,int y)
{int t;while(t=x%y){x=y;y=t;}if(y==1)return 1;else return 0;
}
bool cmp(node a,node b)
{a.x=a.x*b.y;b.x=b.x*a.y;return a.x<b.x;
}
int main()
{freopen("frac1.in","r",stdin);freopen("frac1.out","w",stdout);int n;scanf("%d",&n);int l=0;for(int i=1;i<=n;i++){if(i==1)s[l].x=0,s[l++].y=1;for(int j=1;j<=i;j++){if(gcd(i,j)){s[l].x=j,s[l++].y=i;}}}sort(s,s+l,cmp);for(int i=0;i<l;i++)printf("%d/%d\n",s[i].x,s[i].y);
}
再贴百度来的法雷数列
#include<cstdio>
using namespace std;
long n;
void dfs(long x1,long y1,long x2,long y2){
if(y1+y2<=n){
dfs(x1,y1,x1+x2,y1+y2);
printf("%d/%d\n",x1+x2,y1+y2);
dfs(x1+x2,y1+y2,x2,y2);
}
}
int main()
{
scanf("%d",&n);
printf("0/1\n");
dfs(0,1,1,1);
printf("1/1\n");
return 0;
}
’
usaco Ordered Fractions 顺序的分数(两种解法)相关推荐
- 整数拆分的两种解法(已完成)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 整数拆分 ...
- 多线程顺序打印的5种解法
多线程同步的方式有许多,有传统的synchronized锁,还可以使用lock锁,下面列举多线程顺序打印的5种解法,算作对线程同步的一个总结. 文章目录 经典面试题 多种解法 使用 Lock 使用 w ...
- 约瑟夫环问题的两种解法(详解)
约瑟夫环问题的两种解法(详解) 题目: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个人排成一个圆 ...
- 牛客--追债之旅 两种解法
文章目录 第一种 第二种: 一共两种解法,所以即便你不会最短路,也可以做,甚至爆搜+剪枝的时间和空间消耗小于最短路做法. 第一种 题意: 小明现在要追讨一笔债务,已知有n座城市,每个城市都有编号,城市 ...
- leetcode 73 矩阵置零 C++ 两种解法
leetcode 73 两种解法~~,没有一个是我想出来的,哈哈~~ one class Solution {public:void setZeroes(vector<vector<int ...
- 北林oj-算法设计与分析-Line up in the canteen(两种解法,附思路)
描述 One day, there is a kind of new delicious food from one of the windows in the canteen. All studen ...
- 洛谷——P1597 语句解析(两种解法)
P1597 语句解析(两种解法) 题目背景 木有背景-- 题目描述 一串长度不超过 255 的 PASCAL 语言代码,只有 a,b,c 3 个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变 ...
- 动态规划——钢筋切割问题的两种解法解析
动态规划问题--钢筋切割问题的两种解法解析@TOC 钢筋切割问题: 对于这个问题的两种解法 先来个官方点的解法说明: 我对两种解法的个人理解 第一种解法: 这种解法就是把先钢筋分成两部分,分别记为 i ...
- Leetcode 855. Exam Room 考场就座:提供两种解法
Leetcode 855. Exam Room 考场就座: 提供两种解法 855. Exam Room 考场就座(两种解法) 题目描述 示例: 解答1 代码1 解答2 代码2 855. Exam Ro ...
最新文章
- 关东升的《从零开始学Swift》3月9日已经上架
- 查看tp框架版本方法
- 使用gdb调试多进程和多线程
- 【CSS3 DEMO】扑克正反面翻牌效果
- RAC的搭建(一)--安装环境准备
- dotNet 5 中执行 Node.js
- 设计模式学习笔记——迭代器(Iterator)模式
- Illustrator 教程,了解 Illustrator 中的效果
- 手把手 从零开始学习JAVA(入门基础)
- Myeclipse/Eclipse中修改WebContent/WebRoot
- python模块安装_Python如何安装模块详细教程
- 图形算法:圆形生成算法
- 招行股东会通过收购永隆银行议案
- Ubuntu安装re2c和ninja
- 【论文阅读】SteganoGAN: High Capacity Image Steganography with GANs
- class path resource [xxx.class] cannot be opened because it does not exist
- QQ分享成功后也回调onCancel()
- C#实用技巧:创建并操作access数据库(可无密,也可加密)
- 回归分析(三)—— 多元线性回归
- 2022年最好用的股票数据API接口