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

传送门百度之星

1001 Drink

Problem Description

我们有 n 种不同的饮料,每种饮料有无限多瓶,第 i 种饮料一瓶提供 x[i] 毫升的水分,包含 y[i] 卡路里。
现在我们需要选择一种饮料一直喝,直到补充了至少 m 毫升的水分,我们想使得摄入的卡路里总和最小。请求出这个最小值。
一旦打开一瓶饮料,就一定要喝完。

Input

第一行一个整数 test(1≤test≤100) 表示数据组数。
对于每组数据,第一行两个整数 n,m(1≤n≤100,1≤m≤10000)。
接下来 n 行,每行两个整数 x[i], yi

Output

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

Sample Input

2
1 10
3 3
2 10
3 3
2 1

Sample Output

12 5

题解

一开始以为是完全背包问题,直接求出每一种饮料最少需要多少瓶,和最少摄入的卡路里,排序,找最小值。

#include<cstdio>
#include<algorithm>
#include<string.h>
using namespace std;
int w[300],c[300],f[300010];
int t,m,n;
int main()
{
   
	scanf("%d",&t);
	while(t--)
	{
   
		memset(f,0,sizeof(f));
		scanf("%d%d",&n,&m);
		for(int i=1; i<=n; i++)
		{
   
			scanf("%d%d",&w[i],&c[i]);
			int k=m/w[i];
			if(m-w[i]*k)
			k++;
			f[i]+=k*c[i];
		}
		sort(f+1,f+n+1);		
		printf("%d\n",f[1]);
	}
	return 0;
}

1002 GPA

Problem Description

小沃沃一共参加了 4 门考试,每门考试满分 100 分,最低 0 分,分数是整数。
给定四门考试的总分,请问在最优情况下,四门课绩点的和最高是多少?
分数与绩点之间的对应关系如下:
95~100 4.3
90~94 4.0
85~89 3.7
80~84 3.3
75~79 3.0
70~74 2.7
67~69 2.3
65~66 2.0
62~64 1.7
60~61 1.0
0~59 0

Input

第一行一个正整数test(1≤test≤401) 表示数据组数。 接下来 test 行,每行一个正整

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值