UVALive 7363 A Rational Sequence (二叉树)
来源:互联网 发布:钱刷宝提示网络异常 编辑:程序博客网 时间:2024/06/06 07:03
大体题意:
二叉树每一个点的权值都是一个分数形式,根节点是1/1,(p/q)左儿子是p/(p+q),右儿子是(p+q)/q.每个点的编号按照层序遍历依次给出,然后告诉你个分数,求得这个分数结点的编号!
思路:
直接模拟即可!当p!=q 就一直循环,然后分四种情况讨论,差值和p的大小关系!
模拟时记录一下路径,在从根节点回来算一下编号即可!
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<cstdlib>#include<vector>#include<set>#include<map>#include<stack>#include<cctype>#include<string>#include<iostream>#include<queue>#define fout freopen("out.txt","w","stdout");#define mr make_pair#define fi first#define se secondusing namespace std;typedef long long ll;typedef unsigned long long LLU;const int maxn = 1000 + 5;const int mod = 1000000000;const double eps = 1e-8;const int inf = 0x3f3f3f3f;vector<char>cmd;int main(){ int T; scanf("%d",&T); while(T--){ cmd.clear(); ll k; scanf("%lld",&k); ll p,q; scanf("%lld/%lld",&p,&q); ll ans = 1; while(p != q){ ll Max = max(p,q); ll Min = min(p,q); ll cha = Max - Min; if (p == Min && p <= cha)cmd.push_back('R'),p = p,q = cha; else if (p == Max && q >= cha)cmd.push_back('L'),p = cha,q = q; else if (p == Min && p >= cha)cmd.push_back('R'),p = p,q = cha; else if (p == Max && q <= cha)cmd.push_back('L'),p = cha,q = q; else p = 1,q=1; } int len = (int)cmd.size(); for (int i = len-1; i>=0; --i){ if (cmd[i] == 'R')ans *=2; else ans = ans*2+1; } printf("%lld %lld\n",k,ans); } return 0;}
0 0
- UVALive 7363 A Rational Sequence (二叉树)
- Uva 7363 -- A rational Sequence(简单)
- 【纽约区域赛】-E-A Rational Sequence (递归,满二叉树)
- 【UESTC】1426 - A Rational Sequence (递归)
- csu2140—A Rational Sequence(递归)
- CSU 1946 A Rational Sequence (递归)
- ICPC 7096 A Rational Sequence
- H(1946): A Rational Sequence
- 递归搜索 ( 水题 )——A Rational Sequence ( UVA 7363 )
- Rational Grading UVALive
- Rational Grading UVALive
- (UVALive 7711)A
- UVaLive/LA 6801 Sequence(DP)
- UVALive 6801 Sequence (DP)
- UVALive - 6801 Sequence
- UvaLive 3403 Mobile Computing 枚举二叉树
- UVALive - 4329 Ping pong 二叉索引树
- UVALive - 5902 Movie collection 二叉索引树
- spring安全验证之jwt(json web token)实践
- Data binding学习
- POJ 3090 Visible Lattice Points (欧拉函数)
- 51Nod-1631-小鲨鱼在51Nod小学
- 本科生入门初级数字图像处理
- UVALive 7363 A Rational Sequence (二叉树)
- 02.2跟雨痕看go源码- 并发清理与三色标记
- 【实践】java.lang.Integer源码分析
- UVALive 7365 Composition (DP)
- github中的.gitignore详解
- Android 显示图片的时候设置转换动画
- HDOJ 5723 prim最小生成树+dfs树上平均点距
- Sublime text3安装Emeet总结
- 进程间通信