题目链接:http://codeforces.com/problemset/problem/466/A

题目意思:一个 ride 需要 a 卢布,m 个 ride 需要 b 卢布,这两种方案都可以无限制地采用,要完成 n rides 最少需要多少卢布。

只要理清思路,一步一步做就不难了。

首先 要知道 n 和 m 的大小关系是不确定的,有可能出现 n < m 情况。此时面临的选择是:一张 b 卢布 还是 n * a 卢布。

如果 n >= m 要分情况讨论。

由于我们希望用的卢布越少越好,那么首先算出如果用 b 卢布,就需要比较 a 和 b/m(每个ride需要多少卢布) 的大小关系,如果后者比较少,那么就希望用尽可能多的 b 卢布。最后如果有余数r,就看对于这个余数是采用 r*a 还是 b;如果 a < b/m,那么 n 个 rides 都用 a 卢布来达成。

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std; int main()
{
int n, m, k;
double a, b;
while (scanf("%d%d%lf%lf", &n, &m, &a, &b) != EOF)
{
int ans;
if (n < m)
ans = (a*n > b ? b : a*n);
else if (a >= b/m)
{
ans = n/m * b;
int r = n - n/m * m;
if (r)
ans += min(r*a, b);
}
else
ans = n * a;
printf("%d\n", ans);
}
return ;
}

最新文章

  1. HDU2084基础DP数塔
  2. Buffer too small
  3. android style 中一些颜色的定义
  4. 10 Code Coverage Tools for C &amp; C++
  5. char[] 操作
  6. codeforces 613B B. Skills(枚举+二分+贪心)
  7. java笔记10之循环
  8. Git-多人协作
  9. [js高手之路]node js系列课程-创建简易web服务器与文件读写
  10. iOS Storyboard约束详解
  11. 初级 Java 的 3 本进阶书
  12. RabbitMQ 消息队列 入门 第二章(交换类型fanout)
  13. java-同步控制及不可变设置(只读访问)
  14. Web服务器原理
  15. Go如何正确的使用mysql driver
  16. 截取字符串substr和subString的却别
  17. 诡异的楼梯 HDU - 1180
  18. 直接将DataTable存入oracle数据库中(转)
  19. UNIX环境编程学习笔记(13)——文件I/O之标准I/O流
  20. JavaScript事件代理入门

热门文章

  1. MVC项目引用备注
  2. 2.SOAP 语法
  3. python 列表结构更新的奇妙问题
  4. iOS7系统中的坑——UITableViewCellScrollView
  5. 转帖:HttpStatusCode状态说明C#版
  6. 5.4 heapq--堆队列算法
  7. 程序员必备字体Source Code Pro
  8. MIDI制作的相关软件
  9. run kubernetes
  10. Surrounded Regions 包围区域——dfs