[codeforces 317]A. Perfect Pair
[codeforces 317]A. Perfect Pair
试题描述
Let us call a pair of integer numbers m-perfect, if at least one number in the pair is greater than or equal to m. Thus, the pairs (3, 3) and (0, 2) are 2-perfect while the pair (-1, 1) is not.
Two integers x, y are written on the blackboard. It is allowed to erase one of them and replace it with the sum of the numbers, (x + y).
What is the minimum number of such operations one has to perform in order to make the given pair of integers m-perfect?
输入
Single line of the input contains three integers x, y and m ( - 1018 ≤ x, y, m ≤ 1018).
Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preffered to use the cin, cout streams or the %I64dspecifier.
输出
Print the minimum number of operations or "-1" (without quotes), if it is impossible to transform the given pair to the m-perfect one.
输入示例
-
输出示例
数据规模及约定
见“输入”
题解
如果都是整数,那么不难发现增长率和斐波那契数列相同,就是指数级的,所以直接模拟即可。注意特判有负数的情况。如果只有一个负数,先把这个负数加成正的再模拟。如果两个都是负数,那么不可能再变大了。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <stack>
#include <vector>
#include <queue>
#include <cstring>
#include <string>
#include <map>
#include <set>
using namespace std;
#define LL long long const int BufferSize = 1 << 16;
char buffer[BufferSize], *Head, *Tail;
inline char Getchar() {
if(Head == Tail) {
int l = fread(buffer, 1, BufferSize, stdin);
Tail = (Head = buffer) + l;
}
return *Head++;
}
LL read() {
LL x = 0, f = 1; char c = getchar();
while(!isdigit(c)){ if(c == '-') f = -1; c = getchar(); }
while(isdigit(c)){ x = x * 10 + c - '0'; c = getchar(); }
return x * f;
} LL x, y, m; int main() {
x = read(); y = read(); m = read(); if(x > y) swap(x, y);
if(x <= 0 && y <= 0 && y < m) return puts("-1"), 0;
if(y >= m) return puts("0"), 0;
LL cnt = abs(x) % y ? abs(x) / y + 1 : abs(x) / y;
x += cnt * y; if(x > y) swap(x, y);
while(y < m) {
x = x + y;
if(x > y) swap(x, y);
cnt++;
} printf("%I64d\n", cnt); return 0;
}
[codeforces 317]A. Perfect Pair的更多相关文章
- Codeforces 980 D. Perfect Groups
\(>Codeforces\space980 D. Perfect Groups<\) 题目大意 : 设 \(F(S)\) 表示在集合\(S\)中把元素划分成若干组,使得每组内元素两两相乘 ...
- Codeforces Perfect Pair (JAVA)
http://codeforces.com/problemset/problem/317/A 题意:给两个数字,可以两数相加去替换其中一个数字.问要做多少次,可以让两个数字钟至少一个 >= 目标 ...
- Codeforces Round #188 (Div. 2) C. Perfect Pair 数学
B. Strings of Power Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/318/p ...
- CodeForces - 93B(贪心+vector<pair<int,double> >+double 的精度操作
题目链接:http://codeforces.com/problemset/problem/93/B B. End of Exams time limit per test 1 second memo ...
- Codeforces 934 A.Compatible Pair
http://codeforces.com/contest/934 A. A Compatible Pair time limit per test 1 second memory limit p ...
- cf Perfect Pair
http://codeforces.com/contest/318/problem/C #include <cstdio> #include <cstring> #includ ...
- Codeforces 923 C. Perfect Security
http://codeforces.com/contest/923/problem/C Trie树 #include<cstdio> #include<iostream> us ...
- Codeforces 919 B. Perfect Number
B. Perfect Number time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- Codeforces #317 C.Lengthening Sticks(数学)
C. Lengthening Sticks time limit per test 1 second memory limit per test 256 megabytes input standar ...
随机推荐
- 用css进行布局
用css进行布局 一,开始布局的注意事项 1.作为最佳实践,应把html(内容)和css(显示)分离: 2.网站设计主要有两大类型:固定宽度(基于像素)和响应式(也称流式,使用百分数定义) 二,构建 ...
- Spring浅探
热度最大的框架,它也称为业务层框架.Spring这个框架的诞生,给程序员揭示了两个主要的思想:Ioc,Aop: 最近的网页架构可以分为这样. 传统结构中,每个层都得new出依赖层的类进行一些本层操作, ...
- Apache 使用localhost(127.0.0.1)可以访问 但是使用本机IP(局域网)不能访问
- centos'的yum安装php的memcache扩展
centos'的yum安装php的memcache扩展 博客分类: linux 让php能使用memcached服务的扩展有两种:memcache 和 memcached 1. 先安装libmem ...
- Android学习笔记——MixLayout
该工程的功能是实现LinearLayout+TableLayout 以下代码是MainActivity.java中的代码 package com.example.mixlayout; import a ...
- 斗鱼的sidebar的实现简陋的demo
斗鱼的sidebar的实现简陋的demo <!DOCTYPE html> <html> <head lang="en"> <meta ch ...
- 解惑好文:移动端H5页面高清多屏适配方案 (转)
转自:http://mobile.51cto.com/web-484304.htm https://github.com/amfe/lib-flexible/blob/master/src/makeg ...
- 深刻认识一下session
session是什么: session即会话,是一种持续性,双向的连接. session和cookie在本质上没什么区别,都是针对http协议的局限性提出的一种保持客户端和服务端会话状态的机制. se ...
- AutoMapper.EF6
https://github.com/AutoMapper/AutoMapper.EF6 Extensions for AutoMapper and EF6 This contains some us ...
- Request.GetOwinContext()打不到
Although it's in the Microsoft.Owin.Host.SystemWeb assembly it is an extension method in the System. ...