SDUTOJ懒虫小鑫
Posted ljbguanli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SDUTOJ懒虫小鑫相关的知识,希望对你有一定的参考价值。
题目描写叙述
小鑫是个大懒虫,可是这一天妈妈要小鑫去山上搬些矿石去城里卖以补贴家用。小鑫十分的不开心。不开心归不开心,小鑫还是要做这件事情的。
我们把这个事情简化一下。
有n块矿石,设第i块矿石由两个数字wi和pi表示。分别表示这块石头的重量和能够卖的价钱。小鑫每次仅仅能搬一块矿石去城里卖,所以他决定每次都会搬重量最小的那块。
假设恰好有几块重量相等,那就在这几块中挑选价值最高的带走。
因为路程原因。小鑫每天仅仅能打m个来回。也就意味着他仅仅能卖掉m块矿石。
你能计算出他能得到多少钱么?
输入
输入数据有多组。到文件结束。
对于每一组数据。第一行为n。m。m≤n≤10000。
接下来有n行,每行两个数代表石头的w与p。
输出
对于每组数据,输出有一行为一个数,为答案。
演示样例输入
4 2 1 2 1 3 2 2 3 4
演示样例输出
5
///这个是贪心问题,最大限度的选择最大的
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define N 10010 struct node { int wi; int pi; }ls[N]; int cmp(node a,node b) { if(a.wi==b.wi) return a.pi>b.pi; else return a.wi<b.wi; } int main() { int n,m,i,j; while(~scanf("%d%d",&n,&m)) { int sum=0; for(i=0;i<=n-1;i++) { scanf("%d%d",&ls[i].wi,&ls[i].pi); } sort(ls,ls+n,cmp); for(i=0;i<=m-1;i++) { sum=sum+ls[i].pi; } printf("%d\n",sum); } return 0; }
以上是关于SDUTOJ懒虫小鑫的主要内容,如果未能解决你的问题,请参考以下文章