Problem Description
我们有 nn 种不同的饮料,每种饮料有无限多瓶,第 ii 种饮料一瓶提供 x[i]x[i] 毫升的水分,包含 y[i]y[i] 卡路里。
现在我们需要选择一种饮料一直喝,直到补充了至少 mm 毫升的水分,我们想使得摄入的卡路里总和最小。请求出这个最小值。
一旦打开一瓶饮料,就一定要喝完。
Input
第一行一个整数 test(1 le test le 100)test(1≤test≤100) 表示数据组数。
对于每组数据,第一行两个整数 n, m(1 le n le 100, 1 le m le 10000)n,m(1≤n≤100,1≤m≤10000)。
接下来 nn 行,每行两个整数 x[i], y[i](1 le x[i], y[i] le 100)x[i],yi。
Output
对于每组数据,一行一个整数表示答案。
Sample Input
2
1 10
3 3
2 10
3 3
2 1
Sample Output
12
5
solution
太久没写题了,,题目看错了好几遍。。。(只能喝同一瓶饮料系列)
中午没睡好困,,脑子糊糊的。。。(开始还以为是贪心,,算了单位毫升的卡路里量排序取最小。。。but因为是正瓶喝所以有些刚刚喝到数值的可能总卡路里更小)
直接暴力枚举就好啦。。。
codes
#include
#include
using namespace std;
int main(){
int T; cin>>T;
while(T--){
int n, m, ans = (int)1e9;
cin>>n>>m;
for(int i = 1; i >x>>y;
if(m%x==0)ans = min(ans, m/x*y);
else ans = min(ans,(m/x+1)*y);
}
cout
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net