编程练习-勇者斗恶龙

来源:互联网 发布:云计算的iaas 编辑:程序博客网 时间:2024/04/30 08:00

贪心算法例子:


你的国王中有一条n个头的龙,你希望雇佣一些骑士把它杀死。村里有m个骑士,且只能雇佣一次。
一个能力值为x的骑士,只能砍掉一个直径不超过x的头,
且需要支付的金币为x,如何雇佣这些骑士支付金币最少。


例子:
input:2  3
5
4
7
8
4
output:11


input:2 1
5
5
10
output:Loowater is doomed!

int main(void){int n = 0, m = 0;int iDragonArr[2000], iLoowaterArr[2000];cin >> n >> m;for(int i = 0; i < n; ++i){cin >> iDragonArr[i];}for(int i = 0; i < m; ++i){cin >> iLoowaterArr[i];}// 贪心算法int iTemp = 0, iCoin = 0, itemp = 0;if(n <= m){for(int i = 0; i < n; ++i){for(int j = 0; j < m; ++j){if(iDragonArr[i] <= iLoowaterArr[j]){if(iTemp == 0){iTemp = iLoowaterArr[j];itemp = j;}else{if(iTemp > iLoowaterArr[j]){iTemp = iLoowaterArr[j];itemp = j;}}}}iCoin += iTemp;iTemp = 0;iLoowaterArr[itemp] = 0;itemp = 0;}cout << iCoin << endl;}else{cout << "LooWater is doomed" << endl;}return 0;}

Kindy

2016年3月25日

0 0