2014年百度之星资格赛第一题Energy Conversion
Problem Description
魔法师百小度也有遇到难题的时候——
如今。百小度正在一个古老的石门面前,石门上有一段古老的魔法文字,读懂这样的魔法文字须要耗费大量的能量和大量的脑力。
过了许久,百小度最终读懂魔法文字的含义:石门里面有一个石盘。魔法师须要通过魔法将这个石盘旋转X度,以使上面的刻纹与天相相应,才干打开石门。
可是,旋转石盘须要N点能量值,而为了解读密文,百小度的能量值仅仅剩M点了!
破坏石门是不可能的,由于那将须要很多其它的能量。
只是,幸运的是。作为魔法师的百小度可以耗费V点能量,使得自己的能量变为如今剩余能量的K倍(魔法师的世界你永远不懂。谁也不知道他是怎么做到的)。
比方。如今百小度有A点能量,那么他可以使自己的能量变为(A-V)*K点(能量在不论什么时候都不可以为负。即:假设A小于V的话。就不可以运行转换)。
然而,在解读密文的过程中,百小度预支了他的智商,所以他如今不知道自己是否可以旋转石盘,打开石门,你能帮帮他吗?
Input
输入数据第一行是一个整数T,表示包括T组測试例子;
接下来是T行数据。每行有4个自然数N,M,V,K(字符含义见题目描写叙述);
数据范围:
T<=100
N,M,V,K<= 10^8
Output
对于每组数据,请输出最少做几次能量转换才可以有足够的能量点开门;
假设无法做到,请直接输出-1。
Sample Input
4
10 3 1 2
10 2 1 2
10 9 7 3
10 10 10000 0
Sample Output
3
-1
-1
此题就暴力直接算就行了。
先推断是否m >= n,假设是直接输出0。接着推断能否到达n。假设(m - v)* k <= m,则说明进行这个操作仅仅会不断减小m,所以不可以到达n的。
这里须要注意的是。由于m,v,k均是10^8,所以假设是int直接相乘就爆了。hdu上要用__int64。
进行了上面的推断,就直接进行操作,直到m>=n就停止。由于10^8大概就是2^27。
就算k是最小的2(由于假设是0,1显然之前的推断就完了)。也最多进行27次运算。所以直接暴力就行了。
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<string>
#define MAX 1010
#define INF 99999999
#define MOD 1000000007
#define mem(a) memset(a,0,sizeof(a))
using namespace std;
int n ,m ,v ,k;
int main()
{
while(~scanf("%I64d%I64d%I64d",&n,&m,&v,&k))
{
if(m >= n)
{
printf("0\n");
continue;
}
if((m - v) * k <= m)
{
printf("-1\n");
continue;
}
int ans = 0;
while(m < n)
{
m = (m - v) * k;
ans++;
}
printf("%d\n",ans);
}
return 0;
}
2014年百度之星资格赛第一题Energy Conversion的更多相关文章
- 【2014年百度之星资格赛1001】Energy Conversion
Problem Description 魔法师百小度也有遇到难题的时候—— 现在,百小度正在一个古老的石门面前,石门上有一段古老的魔法文字,读懂这种魔法文字需要耗费大量的能量和大量的脑力. 过了许久, ...
- 2014年百度之星程序设计大赛 - 资格赛 第一题 Energy Conversion
小记:long long %I64d 代码: #include <iostream> #include <stdio.h> #include <string.h> ...
- 2014年百度之星资格赛第二题Disk Schedule
Problem Description 有非常多从磁盘读取数据的需求,包含顺序读取.随机读取.为了提高效率,须要人为安排磁盘读取. 然而,在现实中,这样的做法非常复杂. 我们考虑一个相对简单的场景. ...
- 2014百度之星第一题Energy Conversion
Energy Conversion Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 2014年百度之星资格赛第三题Xor Sum
Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包括了N个正整数,随后 Prometheus 将向 Zeu ...
- 2014年百度之星资格赛第四题Labyrinth
Problem Description 度度熊是一仅仅喜欢探险的熊.一次偶然落进了一个m*n矩阵的迷宫.该迷宫仅仅能从矩阵左上角第一个方格開始走.仅仅有走到右上角的第一个格子才算走出迷宫,每一次仅仅能 ...
- 百度之星资格赛2018B题-子串查询
子串查询 题目 度度熊的字符串课堂开始了!要以像度度熊一样的天才为目标,努力奋斗哦! 为了检验你是否具备不听课的资质,度度熊准备了一个只包含大写英文字母的字符串 A[1,n]=a1a2⋯an,接下来他 ...
- 2014在百度之星资格赛的第四个冠军Labyrinth
Problem Description 熊度仅仅是一种冒险的熊,一个偶然落入一个m*n迷宫矩阵,能从矩阵左上角第一个方格開始走,仅仅有走到右上角的第一个格子才算走出迷宫.每一次仅仅能走一格,且仅仅能向 ...
- 2014在百度之星资格赛的第二个问题Disk Schedule
事实上,我认为它可以用来费用流问题.但光建地图上加班. ..不科学啊.. . 因副作用太大,否则,必然在.最后,想啊想,或者使用dp对.... 别想了一维dp... .我不知道我是怎么想.无论如何,这 ...
随机推荐
- python-爬虫之urllib模块
urllib是python的一个获取url(Uniform Resource Locators,统一资源定址器)了,我们可以利用它来抓取远程的数据进行保存哦 1.基本方法 urllib.request ...
- IT自由职业者的第一个月(上)——何去何从
2016年8月11号,我终于走完所有流程,拿到了离职证明,5年的嵌入式驱动开发工程师的职业生涯就此结束.走离职流程期间,陆续有同事和朋友问我,离职后去哪儿,我都是告诉他们:“还没想好,离了再 ...
- Error -4075: File not found. An error occurred merging module <MODULENAME> for feature <FEATURENAME>.
利用Install Shield2010制作安装包的时候一直报这样的错误,原以为是我自己安装包制作流程的问题,又重新做了2个,但是还是出现问题. 解决办法: 查找资料发现是Install Shield ...
- webservice随记
WebService:跨平台.系统.跨语言间相互调用 CXF:Axis(Apache)-> Axis2(Apache)XFire -> CXF(Celtrix + XFire)(Apach ...
- 【转】Javascript中理解发布--订阅模式
Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时 ...
- css常用左右布局方案整理
实际项目开发过程中我们经常会遇到页面div左右布局的需求:左侧 div 固定宽度,右侧 div 自适应宽度,填充满剩余页面,下面整理几种常用的方案 1 左侧 div 设置 float 属性为 le ...
- Spring boot Mybatis 整合(注解版)
之前写过一篇关于springboot 与 mybatis整合的博文,使用了一段时间spring-data-jpa,发现那种方式真的是太爽了,mybatis的xml的映射配置总觉得有点麻烦.接口定义和映 ...
- MongoDB 学习(二)可视化界面
一.安装可视化界面 1.mongobooster 安装和配置 1.下载安装 下载地址:https://nosqlbooster.com/downloads 下载完成后直接点击安装: 安装完成弹出界面: ...
- 关于输入框在谷歌浏览器 ie 浏览器中 黄色背景的去除
谷歌有自己对input 的填充色 加上下面的css 就可以了 input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px white ins ...
- CentOS 7运维管理笔记(12)----PHP页面失去焦点后变成空白的解决方法
昨天搭建好了LAMP服务器,可以正常看到PHP页面了.后来发现每当把鼠标从浏览器中移开而点击其他地方时,PHP页面就变成一片空白.即PHP页面失去焦点后就变空白,不知为何. 今天网上搜索解决方案,终于 ...