问题链接:。
题意简述:(略)
问题分析:
这个问题是一个典型的贪心法问题,求代价最小。
由于需要用到排序函数,C++的排序函数参数比较简单,所以用C++编程。
程序说明:(略)
AC通过的C++语言程序如下:
/* UVA11292 HDU1902 POJ3646 Dragon of Loowater */#include#include using namespace std;#define MAXN 20000int dragon[MAXN+1], knight[MAXN+1];int main(void){ int n, m; while(scanf("%d%d", &n, &m) != EOF) { // 结束条件判定 if(n == 0 && m == 0) break; // 读入数据 for(int i=0; i = dragon[dcount]) { cost += knight[i]; // 全部砍完的话,结束 if(++dcount == n) break; } } // 输出结果 if(dcount == n) printf("%d\n", cost); else printf("Loowater is doomed!\n"); } return 0;}