标签:ring 文件 ++ 十分 turn pad can node sum
有n块矿石,设第i块矿石由两个数字wi和pi表示。分别表示这块石头的重量和能够卖的价钱。小鑫每次仅仅能搬一块矿石去城里卖,所以他决定每次都会搬重量最小的那块。
假设恰好有几块重量相等,那就在这几块中挑选价值最高的带走。
你能计算出他能得到多少钱么?
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; }
标签:ring 文件 ++ 十分 turn pad can node sum
原文地址:http://www.cnblogs.com/ljbguanli/p/7226131.html