您的位置:首页 > 编程语言

编程练习-勇者斗恶龙

2016-03-25 15:00 253 查看
贪心算法例子:

你的国王中有一条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日
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: