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

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

搜题解的时候发现了 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. (中等) CF 585C Alice, Bob, Oranges and Apples,矩阵+辗转相除。

    Alice and Bob decided to eat some fruit. In the kitchen they found a large bag of oranges and apples ...

  2. Codeforces Beta Round #6 (Div. 2 Only) C. Alice, Bob and Chocolate 水题

    C. Alice, Bob and Chocolate 题目连接: http://codeforces.com/contest/6/problem/C Description Alice and Bo ...

  3. 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 ...

  4. codeforces 632B B. Alice, Bob, Two Teams(暴力)

    B. Alice, Bob, Two Teams time limit per test 1.5 seconds memory limit per test 256 megabytes input s ...

  5. CF6C Alice, Bob and Chocolate

    CF6C Alice, Bob and Chocolate 题目链接 写了一天搜索写的有点累了,就顺手水了一道CF的模拟题 这道题就是简单的模拟整个题的过程,注意最后输出的形式就好了QWQ AC代码如 ...

  6. C - Alice, Bob and Chocolate(贪心)

    Problem description Alice and Bob like games. And now they are ready to start a new game. They have ...

  7. 2019.01.20 bzoj5158 Alice&Bob(拓扑排序+贪心)

    传送门 短代码简单题. 题意简述:对于一个序列XXX,定义其两个伴随序列a,ba,ba,b,aia_iai​表示以第iii个数结尾的最长上升子序列长度,bib_ibi​表示以第iii个数开头的最长下降 ...

  8. Jzzhu and Apples CodeForces - 449C (构造,数学)

    大意: 求从[1,n]范围选择尽量多的数对, 使得每对数的gcd>1 考虑所有除2以外且不超过n/2的素数p, 若p倍数可以选择的有偶数个, 直接全部划分即可 有奇数个的话, 余下一个2*p不划 ...

  9. 【Henu ACM Round #12 C】 Alice, Bob, Two Teams

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑任意两个字符串(a,b) 假设a在b的前面 那么如果a+b>=b+a 这里的+表示字符串的链接 那么显然需要交换a,b的位 ...

随机推荐

  1. 运动规划 (Motion Planning): MoveIt! 与 OMPL---44

    原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 最近有不少人询问有关MoveIt!与OMPL相关的话题,但是大部分问题都集中于XXX功能怎么实现,XXX错 ...

  2. Xcode工程添加第三方文件的详细分析 Create folder references for any added folders(转)

    在开发iOS项目的时候需要导入第三方的库文件,但是通过Xcode导入第三方源文件的时候会提示一些信息,不知所以然. 现在看到的文档都是针对Xcode3的,针对Xcode4的说明很少,现在分享出来. 官 ...

  3. Linux+Redis实战教程_day02_2、redis简述及安装与启动

    2. redis简述及安装 关系型数据库(SQL): Mysql,oracle 特点:数据和数据之间,表和字段之间,表和表之间是存在关系的 例如:部门表 001部门,   员工表 001 用户表,用户 ...

  4. wcf中的使用全双工通信(转)

    wcf中的使用全双工通信   wcf中的契约通信默认是请求恢复的方式,当客户端发出请求后,一直到服务端回复时,才可以继续执行下面的代码. 除了使用请求应答方式的通信外,还可以使用全双工.下面给出例子: ...

  5. 【GIS】postgres(postgis) --》nodejs+express --》geojson --》leaflet

    一.基本架构 1.数据存储层:PostgreSQL-9.2.13 + postgis_2_0_pg92 2.业务处理层:Nodejs + Express + PG驱动 3.前端展示层:Leaflet ...

  6. python3存入redis是bytes

    在python3 中使用redis存储数据,存进去的是bytes >>> import redis >>> import time >>> imp ...

  7. Xcode 插件集:xTextHandler

    本文转载至 http://www.tuicool.com/articles/zIFvQn7 基于 Xcode Source Editor Extension 做了一个插件集,叫做 xTextHandl ...

  8. 《Lua程序设计》9.2 管道(pipe)与过滤器(filter) 包含使用协同函数实现“生产者——消费者”问题的实例代码

    一个关于协同程序的经典示例是“生产者-消费者”问题.这其中涉及到两个函数,一个函数不断地产生值(比如从一个文件中读取值),另一个则不断地消费这些值(比如将这些值写到另一个文件).通常,这两个函数大致是 ...

  9. opencv3——ANN算法的使用

    最近刚转用opencv3,使用ANN算法时遇到了一些问题,记录下来. 训练神经网络的代码如下: //创建ANN Ptr<ANN_MLP> bp = ANN_MLP::create(); 设 ...

  10. 原生js--兼容获取窗口滚动条位置和窗口大小的方法

    各个浏览器对获取获取窗口滚动条位置和窗口大小没有提供统一的API,以下是对其封装,解决兼容性问题 /** * 获取浏览器视口的大小(显示文档的部分) *  */function getViewPort ...