Energy Conversion

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 7787    Accepted Submission(s): 1894

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

0

题解:

一道比較水的题。依据递推式直接模拟就可以。WA好几次,開始直接分情况推导公式。

#include<iostream>
using namespace std; int main()
{
__int64 n,m,k,v,ans;
int cas;
cin>>cas;
while(cas--)
{
scanf("%I64d%I64d%I64d%I64d",&n,&m,&v,&k);
if(n==m)
ans=0;
__int64 tn=n,tm=m;
__int64 count=0;
while(tn>tm)
{
if(tm<v||(tm-v)*k<=tm)
{
ans=-1;
break;
}
tm=(tm-v)*k;
count++;
}
if(tn<=tm)
ans=count;
else ans=-1;
printf("%I64d\n",ans);
}
return 0;
}

2014百度之星第一题Energy Conversion的更多相关文章

  1. 2014百度之星资格赛 1001:Energy Conversion(水题,逻辑题)

    Energy Conversion Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  2. 2014年百度之星资格赛第一题Energy Conversion

    Problem Description 魔法师百小度也有遇到难题的时候-- 如今.百小度正在一个古老的石门面前,石门上有一段古老的魔法文字,读懂这样的魔法文字须要耗费大量的能量和大量的脑力. 过了许久 ...

  3. 2014年百度之星程序设计大赛 - 资格赛 第一题 Energy Conversion

    小记:long long %I64d 代码: #include <iostream> #include <stdio.h> #include <string.h> ...

  4. 2014百度之星第二题Disk Schedule(双调欧几里得旅行商问题+DP)

    Disk Schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  5. 2014百度之星预赛(第二场)——Best Financing

    2014百度之星预赛(第二场)--Best Financing Problem Description 小A想通过合理投资银行理財产品达到收益最大化.已知小A在未来一段时间中的收入情况,描写叙述为两个 ...

  6. ACM-百度之星资格赛之Energy Conversion——hdu4823

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/lx417147512/article/details/26400079 Energy Convers ...

  7. 2014百度之星资格赛——Disk Schedule

    2014百度拥有明星格比赛--Disk Schedule Problem Description 有非常多从磁盘读取数据的需求,包含顺序读取.随机读取. 为了提高效率.须要人为安排磁盘读取. 然而.在 ...

  8. 2014 百度之星 题解 1004 Labyrinth

    Problem Description 度度熊是一仅仅喜欢探险的熊,一次偶然落进了一个m*n矩阵的迷宫,该迷宫仅仅能从矩阵左上角第一个方格開始走,仅仅有走到右上角的第一个格子才算走出迷宫,每一次仅仅能 ...

  9. 2014百度之星初赛第二场hdu 4831 Scenic Popularity

    Scenic Popularity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

随机推荐

  1. JavaScript 从闭包可以做什么开始,将有助于理解闭包

    本文内容 函数内部访问全局变量 函数外部不能直接访问局部变量 函数外部访问局部变量 保护私有成员 持久性 模块化 抽象性 闭包是 JavaScript 的重要特性,非常强大,可用于执行复杂的计算,可并 ...

  2. Android权限判断checkPermission

    判断本程序是否拥有某权限的方法: private static final String EXTERNAL_STORAGE_PERMISSION = "android.permission. ...

  3. Solidworks直接打开SWB文件报错怎么办

       

  4. JAVA中动态编译的简单使用

    一.引用库 pom文件中申明如下: <dependencies> <!-- https://mvnrepository.com/artifact/junit/junit --> ...

  5. 查看JAVA的class二进制文件的方法

    hexdump -C filename可以查看二进制文件. 比如java的Test.java public class Test{ public static void main(String[] a ...

  6. Mysql alter常见使用语句

    //添加主键 alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add ...

  7. TortoiseGit使用指南

    http://www.360doc.com/content/13/0424/17/9171956_280649187.shtml

  8. JPress的CMS系统在Window下的部署和使用

    开始使用JPress系统的话首先要进入官网对其进行熟悉 官网网址如下:http://www.jpress.io/faq.html 然后是下载项目,项目下载地址是.https://gitee.com/f ...

  9. oracle 12c 官方文档 及软件下载

    oracle 12c 官方文档 http://www.oracle.com/pls/db121/homepage oracle 12c 软件下载 http://www.oracle.com/techn ...

  10. Jquery的html方法里包含特殊字符的处理

    jqueryhtml()特殊字符 在使用jquery的html()方法时,有时候里面添加的html代码含有一些特殊字符,需要进行转义. 如下例子: inst_html = "<a st ...