☘前言☘
今天的题目也不难,就基本的贪心硬贪就好了。希望有想要提高的同学跟我们一起来刷题0.0
4.3日每日一题——贪心
🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人
✨联系方式:2201891280(QQ)
⏳全文大约阅读时间: 20min
P1208 [USACO1.3]混合牛奶 Mixing Milk
解题思路
直接贪心,就是每次选取单价最小的元素加入最终结果,得到最终的结果。
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int p; //单价
int q; //最多牛奶量
}Hash;
Hash hash[5000];
int cmp(const void *a,const void *b){
return ((Hash*)a)->p < ((Hash *)b)->p ? -1 : 1;//升序排列
}
int main(){
int m, n;
while(scanf("%d %d",&n, &m) != EOF){
for(int i = 0;i < m;++i)
scanf("%d %d",&hash[i].p,&hash[i].q); //读入数据
qsort(hash,m,sizeof(Hash),cmp);
int ans = 0;
for(int i = 0;n > 0;++i){
int tmp = n;
if(n > hash[i].q) tmp = hash[i].q;
ans += tmp * hash[i].p;
n -= tmp;
}
printf("%d",ans);
}
return 0;
}
过咯!!!!!!!!!!!!!!!!!!!!!!!4ms yyds
📑写在最后
今天就先这样,经过昨天的深思熟虑,我决定开底层的学习了,虽然CSDN上底层的文章明显不如算法的,但是我想去开拓这条路,这也是我自己的选择,不知道会不会有人支持我的呢0.0