2014年百度之星程序设计大赛 - 资格赛 1001 Energy Conversion
版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/sr19930829/article/details/26003661
Energy Conversion
如今。百小度正在一个古老的石门面前。石门上有一段古老的魔法文字。读懂这样的魔法文字须要耗费大量的能量和大量的脑力。
过了许久,百小度最终读懂魔法文字的含义:石门里面有一个石盘,魔法师须要通过魔法将这个石盘旋转X度,以使上面的刻纹与天相相应,才干打开石门。
可是,旋转石盘须要N点能量值,而为了解读密文。百小度的能量值仅仅剩M点了。破坏石门是不可能的,由于那将须要很多其它的能量。只是,幸运的是,作为魔法师的百小度能够耗费V点能量,使得自己的能量变为如今剩余能量的K倍(魔法师的世界你永远不懂,谁也不知道他是怎么做到的)。
比方,如今百小度有A点能量,那么他能够使自己的能量变为(A-V)*K点(能量在不论什么时候都不能够为负。即:假设A小于V的话。就不能够运行转换)。
然而。在解读密文的过程中,百小度预支了他的智商。所以他如今不知道自己能否够旋转石盘。打开石门,你能帮帮他吗?
接下来是T行数据。每行有4个自然数N,M,V,K(字符含义见题目描写叙述);
数据范围:
T<=100
N,M,V,K <= 10^8
假设无法做到,请直接输出-1。
10 3 1 2
10 2 1 2
10 9 7 3
10 10 10000 0
-1
-1
0
解题思路:
开启大门须要n能量值,现有m能量值,有一种魔法能够消耗现有能量值里面的v能量值,那么剩下的能量值就会翻k倍,即m=(m-v)*k;
问最少须要几次魔法,才干开启大门。
关键是if else语句,把情况想的全面些。
代码:
#include <iostream>
using namespace std;
long long n,m,v,k;
bool ok;
int c;
int main()
{
int t;cin>>t;
while(t--)
{
ok=1;
c=0;
cin>>n>>m>>v>>k;
if(m<n&&m<=v)//非常明白的不合法
{
cout<<-1<<endl;
continue;
}
if(m>=n)//初始能量值大于所需能量值
{
cout<<0<<endl;
continue;
}
else
{
if(m>v)
{
int temp=m;
while(m<n)
{
m=(m-v)*k;
if(m<=temp)//本来是想要增大能量值的,结果越来越小,不合法
{
cout<<-1<<endl;
ok=0;
break;
}
c++;
}
}
else
cout<<-1<<endl;
}
if(ok)
cout<<c<<endl;
}
return 0;
}
2014年百度之星程序设计大赛 - 资格赛 1001 Energy Conversion的更多相关文章
- 2014年百度之星程序设计大赛 - 资格赛 第二题 Disk Schedule
双调欧几里得旅行商问题是一个经典动态规划问题.<算法导论(第二版)>思考题15-1和北京大学OJ2677都出现了这个题目. 旅行商问题描写叙述:平面上n个点,确定一条连接各点的最短闭合旅程 ...
- hdu 4825 Xor Sum (建树) 2014年百度之星程序设计大赛 - 资格赛 1003
题目 题意:给n个数,m次询问,每次给一个数,求这n个数里与这个数 异或 最大的数. 思路:建一个类似字典数的数,把每一个数用 32位的0或者1 表示,查找从高位向底位找,优先找不同的,如果没有不同的 ...
- 2014年百度之星程序设计大赛 - 资格赛 1004 Labyrinth(Dp)
题目链接 题目: Labyrinth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 2014年百度之星程序设计大赛 资格赛第一题 (longlong)
解题思路: 只要看(A-V)*K 这个公式的更新值是否大于等于A ,大于的话继续循环,否则报错 注意一点,数据会爆int WA代码: #include<stdio.h> int main( ...
- 2014年百度之星程序设计大赛 - 资格赛 第三题 Xor Sum
小记:艹蛋呢, 取long long的低30,32,34位都WA, 取31位才AC. .. 思路:依据求数组中两个数异或最大值.參考 代码: #include <stdio.h> #inc ...
- 2014年百度之星程序设计大赛 - 资格赛 1002 Disk Schedule(双调欧几里得旅行商问题)
Problem Description 有非常多从磁盘读取数据的需求,包含顺序读取.随机读取.为了提高效率,须要人为安排磁盘读取.然而,在现实中,这样的做法非常复杂.我们考虑一个相对简单的场景.磁盘有 ...
- 2014年百度之星程序设计大赛 - 资格赛 第一题 Energy Conversion
小记:long long %I64d 代码: #include <iostream> #include <stdio.h> #include <string.h> ...
- hdu 6082 度度熊与邪恶大魔王(2017"百度之星"程序设计大赛 - 资格赛 )
度度熊与邪恶大魔王 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- 2017"百度之星"程序设计大赛 - 复赛1001&&HDU 6144 Arithmetic of Bomb【java大模拟】
Arithmetic of Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
随机推荐
- 最全Java学习路线图——Java学习指南
准备篇 适用/适合人群:适合基础小白 目标:掌握JavaSE. ●技术点小节: 1.开发工具的安装配置的介绍 2.JDK安装 3.DOS环境编程 4.Eclipse的安装使用 ●JAVA基础 1.基本 ...
- 笔记本怎么设置WIfi热点
随着手机的发展,流量的消耗也是大大地增加.虽然很多手机支持wifi,但是不加密或者知道密码的wifi热点却寥寥无几.笔记本的无线网卡显出神通了.那么,如何在笔记本上建立wifi热点呢? 工具/原料 一 ...
- Systemd on ubuntu
何为 systemd? systemd 是一个 Linux 下的系统和会话管理器,与 SysV 和 LSB 启动脚本兼容.systemd 提供了积极的并行处理能力,使用套接字(socket)和 D-b ...
- 再不学会这些技巧,你就OUT了!
俗话说的好:技多不压身!这句话真是一点都没错,尤其是在21世纪的今天,作为老师的你,如果不会使用下面所要说的这款神器,恐怕你就像玩游戏一样,要被get out!那到底是什么呢?它就是现在正在全国初高中 ...
- 一这hash算法
public static long hash(byte[] digest, int nTime) { long rv = ((long)(digest[3 + ...
- Linux,unix,cygwin,centeros下的tar压缩解压缩命令具体解释
tar Examples: tar -cf archive.tar foo bar # Create archive.tar from files foo and bar. tar -tvf ...
- Effective C++ Item 17 Store newed objects in smart pointer in standalone statements
If you trying to do multiple things in one statement, you should think carefully abnormal behavior e ...
- Map的key不变,value相加
判断map中是否含有某个key,如包含则结果value相加,如不包含则新增. 直接上demo吧: package javademo; import java.util.HashMap; import ...
- Python 收集主机信息
写一个 python 脚本,收集以下信息 ( CentOS 6 ) : IP地址 <ip> 主机名 <hostname> 操作系统版本 <osver> ...
- C语言简介(转自菜鸟教程)
C 简介 C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的.C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现. 在 1978 ...