E - Alice, Bob, Oranges and Apples

CodeForces - 586E

自己想的时候模拟了一下各个结果

感觉是不是会跟橘子苹果之间的比例有什么关系

搜题解的时候发现了 Stern-Brocot tree

长这样 和我想的那个很类似 可开心了

但是后来看不懂题解什么意思

关于Stern树的一点结论是 每一层相邻的两个数a/b 和 c/d 可以得到下面一层的数(a+c)/(b+d)

而且分子分母一定是互质的

后来自己找规律 觉得如果x比y小就需要一次B操作 下面是代码

TLE on test 10

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cmath>
#include<cstring>using namespace std;long long x, y;long long gcd(long long x, long long y)
{return (y == 0)? x : gcd(y, x % y);
}int main()
{while(scanf("%I64d%I64d", &x, &y) != EOF){if(gcd(x, y) != 1){cout<< "Impossible\n";}else{long long timea = 0, timeb = 0;while(abs(x-y) >= 1){if(x < y){if(timea){cout<<timea<<"A";timea = 0;}timeb++;y -= x;}else{if(timeb){cout<<timeb<<"B";timeb = 0;}timea++;x -= y;}}if(timea)cout<<timea<<"A"<<endl;if(timeb)cout<<timeb<<"B"<<endl;}}return 0;
}

T完了以后觉得自己真的怎么还是这么傻

也不估一下复杂度

又找到了新的题解 说直接模拟的

还是不太懂

先附在这里 晚点看

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;void work()
{LL a, b;scanf("%I64d%I64d", &a, &b);if(__gcd(a, b) != 1) {printf("Impossible\n");return;}while(a && b) {if(a < b) {LL t = b / a;if(a * t == b) printf("%I64dB", t-1);else printf("%I64dB", t);b -= t * a;}else {LL t = a / b;if(b * t == a) printf("%I64dA", t-1);else printf("%I64dA", t);a -= t * b;}}printf("\n");
}int main()
{
//freopen("data", "r", stdin);work();return 0;
}

找trader问了一下思路 突然好像理解了!!!

先假设某一个状态橘子苹果数量是A和B且A<B

那么B肯定是由k次上一状态的A加上上一状态的B得到的

所以可以理解 A操作的次数就是B/A次 如果没有余数说明过头了要减1

Alice, Bob, Oranges and Apples CodeForces - 586E相关推荐

  1. Educational Codeforces Round 9 B. Alice, Bob, Two Teams 前缀和

    B. Alice, Bob, Two Teams 题目连接: http://www.codeforces.com/contest/632/problem/B Description Alice and ...

  2. C. Oranges and Apples

    C. Oranges and Apples 题意: 给定一个数字N 已知有2n-1框水果,每框中有一定的 橘子和苹果 让从中选出 n框水果 ,要求 这n框水果的每种总和 不小于 所有框中相对每种的 一 ...

  3. 【CodeForces - 632B】Alice, Bob, Two Teams (预处理,思维,前缀和后缀和)

    题干: Alice and Bob are playing a game. The game involves splitting up game pieces into two teams. The ...

  4. [codeforces23C]Oranges and Apples

    time limit per test : 1.5 seconds memory limit per test : 256 megabytes 分数:2500(补的有趣的老题) In 2N−12N - ...

  5. 密码学中常用的人物角色名称--Alice, Bob,etc

    密码学中常用的人物角色名称 转载至 (https://blog.51cto.com/manual/788667) 爱丽丝(Alice)与鲍伯(Bob)是广泛地代入密码学和物理学领域的通用角色.除了爱丽 ...

  6. java连接mysql数据库时出现乱码_java连接mysql数据库中文乱码问题

    完整安装cocoaPods cocoaPods是一款xcode项目管理第三方库的工具 *ruby源码镜像下载:https://ruby.taobao.org/mirrors/ruby/*升级gem的版 ...

  7. 【清华集训2016】Alice和Bob又在玩游戏

    不难的题目.因为SG性质,所以只需要对一棵树求出. 然后如果发现从上往下DP不太行,所以从下往上DP. 考虑一个点对子树的合并,考虑下一个删的点在哪一个子树,那么剩下的状态实际上就是把一个子树所有能达 ...

  8. hdu 4268 Alice and Bob(STL版)

    http://acm.hdu.edu.cn/showproblem.php?pid=4268 这是今天网络赛的水题,下午短路了,没想到怎么做.队友hq是用treap做的,不过赛后我才想懂怎么做,回到宿 ...

  9. NYOJ 1053 Alice and Bob (N)

    Alice and Bob (N) 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 也不知道是谁规定的,Alice 和 Bob总是有一堆做不完的事,和一堆奇葩想法,而且重 ...

最新文章

  1. eBPF bcc实例分析
  2. 工程制图 (化工工艺流程图绘制 )
  3. Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources
  4. sqlserver存储过程学习
  5. MySQL max_allowed_packet
  6. Atitit q2016 q4 doc list on home ntpc.docx
  7. vbs整人小程序集合
  8. C语言常用开发环境IDE
  9. Cameralink多功能接口转换模块
  10. 天翼网盘在线直链解析源码
  11. 蔡颖-《APS走向实践》书解读之三:供应、计划排程、供应链优化
  12. 港科夜闻|香港科大唐本忠院士团队整合最新研究成果:刺激响应型聚集诱导发光材料...
  13. java2048ai,2048小游戏ai设计
  14. 恭贺新春-杨建荣敬祝
  15. QT教程 休闲棋牌游戏开发(2)
  16. 《AR与VR开发实战》——第1章AR技术简介
  17. 下载chromedriver
  18. 手机qpython3 如何画图_记住这3个功能,一分钟掌握python sns作图
  19. 数据载入、存储及文件格式——《利用python数据分析》第六章学习
  20. 奇偶 ASCII 值判断(信息学奥赛一本通)

热门文章

  1. 阿里安卓开发开发规范手册V1.0
  2. 智能车载行业分析报告-缩减版
  3. 怎么用ai做出适量插画_怎么用AI和AE制作矢量插画风猫咪动效
  4. NYOJ594 还是A+B
  5. adrp 命令为何能获取符号的地址
  6. Nodejs编程(2)
  7. 重启计算机怎么一键还原系统还原,w7怎么一键还原_w7系统一键还原设置
  8. 康普:云时代智能布线多面手
  9. 全能android按钮,《按键精灵安卓版全能宝典》
  10. 超强解析Python兼职18招,适合小白的最佳副业,赶紧收藏