您当前的位置: 首页 > 

MangataTS

暂无认证

  • 0浏览

    0关注

    423博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

2020 年百度之星·程序设计大赛 - 初赛一

MangataTS 发布时间:2020-07-20 13:42:00 ,浏览量:0

Drink 

传送门

 Accepts: 1896
 
 Submissions: 4596
 Time Limit: 2000/1000 MS (Java/Others)
 
 Memory Limit: 32768/32768 K (Java/Others)
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],y[i](1≤x[i],y[i]≤100)。

Output

对于每组数据,一行一个整数表示答案。

Sample Input
2
1 10
3 3
2 10
3 3
2 1
Sample Output
12
5解题思路:因为n种饮料种每种饮料的补充水分x和和包含的卡路里都不同,所以从头到尾遍历看哪种饮料消耗的卡路里最少(注意这里是 一种饮料一直喝)我们便可以的到如下代码:
#include
#include
#define INF 0x3f3f3f3f
using namespace std;
int n,m,t;
int x[105],y[105];
int main(void)
{
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&m);
        for(int i=0;i95,90,85,80,75,70,67,65,62,60,0};
double b[11]={4.3,4.0,3.7,3.3,3.0,2.7,2.3,2.0,1.7,1.0,0};
int main(void)
{
    
    int x,t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&x);
        double sum=0;
        for(int i=0;i            
关注
打赏
1665836431
查看更多评论
0.0454s