Cheap Travel(暴力求解法)

原创 2015年11月21日 09:47:31
A. Cheap Travel
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Ann has recently started commuting by subway. We know that a one ride subway ticket costs a rubles. Besides, Ann found out that she can buy a special ticket for m rides (she can buy it several times). It costs b rubles. Ann did the math; she will need to use subway ntimes. Help Ann, tell her what is the minimum sum of money she will have to spend to make n rides?

Input

The single line contains four space-separated integers nmab (1 ≤ n, m, a, b ≤ 1000) — the number of rides Ann has planned, the number of rides covered by the m ride ticket, the price of a one ride ticket and the price of an m ride ticket.

Output

Print a single integer — the minimum sum in rubles that Ann will need to spend.

Sample test(s)
input
6 2 1 2
output
6
input
5 2 2 3
output
8
Note

In the first sample one of the optimal solutions is: each time buy a one ride ticket. There are other optimal solutions. For example, buy three m ride tickets.

题目大意:要做n趟旅行,有一种票一张可做m趟旅行,有一种票只能做一次旅行,价格分别为a,b

解题思路:由于数据量小,可直接暴力求解

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;

#define MAX_N 1000005//可由数据推得最大票价不会超过这个数

int n,m,a,b,ans;

int main()
{
	while(cin>>n>>m>>a>>b)
	{
		ans=MAX_N;
		for(int i=0;i<=n;i++)
		{
			int j=(n-i)/m + bool((n-i)%m);
			
			ans = min(ans,i*a+j*b);
		}
		
		cout<<ans<<endl;
	}
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

CodeForces 466A Cheap Travel

Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Description A...

算法竞赛入门经典第七章暴力求解法——枚举排列(记录向)

生成字典序这个算法是经常用到的,尤其是解决某一排列是否符合某个条件,符合就输出出来,那么这样就需要将整个数组进行全排列,一一判断是否符合。接下来将根据紫书上的顺序依次进行记录。-1.生成1~n的排列输...

算法竞赛入门经典:第七章 暴力求解法 7.7解答树

/* 解答树: 以下的树显示了排列递归函数的调用过程。 (****) ...

算法竞赛入门经典(第二版)-刘汝佳-第七章 暴力求解法 例题(7/15)

说明本文是我对第七章15道例题的练习总结,建议配合紫书——《算法竞赛入门经典(第2版)》阅读本文。 另外为了方便做题,我在VOJ上开了一个contest,欢迎一起在上面做:第七章例题contest ...

算法竞赛入门经典:第七章 暴力求解法 7.18倒水问题

/* 倒水问题: 有装满水的6升杯子、空的3升杯子和一升杯子,3个杯子中都没有刻度。在不使用其他道具的情况下,是否可以量出4升的水呢? 输入: 6(满杯水所在的刻度) 3 1 输出: (6...

《算法竞赛入门经典》-【第七章:暴力求解法】-7.3:子集生成

一 问题

暴力求解法 之 枚举排列

1、生成1~n的排列 #include #include const int N=1e3+10; int a[N]; void print_permutation(int n,int *a,int ...

暴力求解法_枚举排列(生成1~n 的排列,生成可重集的排列,下一个排列)

枚举排列生成1~n 的排列题目:输入整数n,按字典从小到大的顺序输出前n个数的所有排列。两个序列的大小关系等价于从头开始第一个不相同位置处的大小关系。输入:3 输出:(1 2 3) (1 3 2) (...

算法竞赛入门经典第七章暴力求解法——简单枚举(记录向)

7-1 简单枚举题目大意:输入n,按从小到大顺序输出形如abcde/fghij=n,其中a~j是数字0~9的一个排列。 代码如下:#include #include #include using n...

算法竞赛入门经典:第七章 暴力求解法 7.16埃及分数

/* 埃及分数: 使用单位分数的和(如1/a,a是自然数)表示一切有理数。例如2/3 = 1/2 + 1/6,但不允许2/3 = 1/3 + 1/3,因为在加数中不允许有相同的。 对于一个分数a...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Cheap Travel(暴力求解法)
举报原因:
原因补充:

(最多只允许输入30个字)