Energy Conversion

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1580    Accepted Submission(s): 633

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
Source
2014年百度之星程序设计大赛 - 资格赛
想法:
水题
代码:
#include<stdio.h>
#include<string.h>
int main()
{
   int T;
   scanf("%d",&T);
   while(T--)
   {
     long long n,m,v,k;
      scanf("%lld%lld%lld%lld",&n,&m,&v,&k);
      long long yy=m;
      if(n<=m)
      {
          printf("0\n");
          continue;
      }
      if(m-v<=0||k<=0)
      {
         printf("-1\n");
          continue;
      }
      int count=0;
      int flag=0;
      while(m<n)
      {
          if(m-v>=0)
            m=(m-v)*k;
            //printf("%d %d\n",m,yy);
          if(yy>=m)
          {
              flag=1;
              break;
          }
          else
            yy=m;
          count++;
      }
      //printf("%d\n",flag);
      if(flag==1) printf("-1\n");
     else  printf("%d\n",count);
   }
   return 0;
}

杭电acm 4823Energy Conversion(水题)相关推荐

  1. 杭电acm的第1000题c语言解法

    首先我选择的是c语言的解法,开始是输入如下的答案: #include "stdio.h" int main(void) { long long a,b; scanf("% ...

  2. 杭电acm第2304题答案c语言,【转】杭电ACM试题分类

    注:网上搜的 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 ...

  3. 杭电acm2151题java的解法,杭电ACM题型分类

    杭电ACM题型分类 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.1032.1037.1040.1048.1 ...

  4. 杭电ACM刷题(1):1002,A + B Problem II

    最近忙于考试复习,没有多少可供自己安排的时间,所以我利用复习之余的空闲时间去刷刷杭电acm的题目,也当对自己编程能力的锻炼吧. Problem Description I have a very si ...

  5. 杭电ACM(HDUOJ)试题分类

    杭电ACM试题分类 第一篇 1001 这个就不用说了吧                      1002 简单的大数                            1003 DP经典问题,最 ...

  6. 杭电ACM题目类型整理

    版权声明:(╯3╰) 转载请注明: http://blog.csdn.net/bat67 杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 10 ...

  7. 【杭电ACM】1097 A hard puzzle

    [杭电ACM]1097  A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid=1097 先用int手写了算法结果竟然wrong answer ...

  8. 杭电acm a+b问题

    杭电acm 1000 a+b问题代码 int main() { int a,b; for(;~scanf("%d%d",&a,&b);printf("%d ...

  9. 杭电计算机复试面试题库,杭电电子分院历年复试题(整理版)

    杭电电子分院历年复试题(整理版) 这个是我自己整理的,希望大家喜欢... 06年的 1.名词解释: CDMASOCDSPVHDL3G 2.写出3种以上的EDA开发工具,年并说明其特点 3.有2个单刀双 ...

最新文章

  1. 禁止输入emoji表情
  2. dex文件结构(一):dex文件结构
  3. WindowsPE 第七章 资源表
  4. mongo数据库数据迁移到muysql数据库
  5. tar ------ linux解压 tar命令
  6. GitHub真把代码冰封北极1000年!
  7. IBM heapAnalyzer
  8. 全球首款采用离心风扇/90Hz刷新率的电竞手机红魔3发布
  9. 查看计算机80端口,电脑win10 80端口被占用的检测和解决方法
  10. 从零开始学习jQuery-------jQuery元素选择器(三)
  11. 20 万台 QQ 服务器全面上云!
  12. 深掘工业互联网大数据五大维度
  13. bpmn js 生成json_js处理的8种跨域方法
  14. 使用DataV制作实时销售数据可视化大屏
  15. 定点补码加减法运算_定点整数的加减法
  16. 微信html5线上卡券,16.7.1HTML5网页领取卡券
  17. 网站安全防护措施有哪些
  18. MGR新加节点一直recovering故障解决
  19. PPT超实用的23个快捷键
  20. matlab时频分析代码

热门文章

  1. 如何在Mac上设置iMessage?
  2. source insight 4.0下载与破解
  3. 王者荣耀s19赛季服务器维护,王者荣耀S19赛季突然宣布更新,缺少以往大肆宣传的背后隐藏了什么...
  4. iPhone其实也能截长图,这招你学会了吗?
  5. kettle 入门笔记
  6. 仿盘和诈骗项目横行,NFT治理将走向何方?
  7. Tez安装与使用(与hive配合使用)及lzo.jar报错错误解决
  8. 反编译获取任何小程序源码——看这篇就够了
  9. 牙齿美白避免这三个误区
  10. 5-8 以特殊方式跟管理员打招呼