algorithm——sort(eg.The Dragon of Loowater)
2017-09-01 11:28
671 查看
algorithm 中 sort函数:
sort函数:sort(first,end,method)//其中第三个参数为可选参数。
参数含义:
first:需要排序数组的起始位置
end:终止位置
method:是一个方法,用来决定sort函数的排序方式
1.当只有两个参数时,则默认排序为从小到大
(应用见例题)
2.当有3个参数时,则要实现method方法。
例题:有一条n个头的恶龙以及m个骑士,一个能力值为x的骑士可以被雇佣来砍掉恶龙一个直径不超过x的头,且需要支付x个金币。如何雇佣骑士才能砍掉恶龙所有的头,且需要支付的金币最少?注意,一个骑士只能砍掉一个头,且不能被重复雇佣。
[输入格式]
输入包含多组数据。第一行为正整数n和m(1<=n,m<=20000);一下n行每行为一个整数,即恶龙头的直径;以下m行每行一个正整数,即每个骑士的能力值。输入结束的标志为n=m=0。
[输出格式]
对于每组数据,输出最少的花费。如果无解,输出”Loowater is doomed!”。
[样例输入]
2 3
5
4
7
8
4
2 1
5
5
10
0 0
[样例输出]
11
Loowater is doomed!
C++代码:
sort函数:sort(first,end,method)//其中第三个参数为可选参数。
参数含义:
first:需要排序数组的起始位置
end:终止位置
method:是一个方法,用来决定sort函数的排序方式
1.当只有两个参数时,则默认排序为从小到大
(应用见例题)
2.当有3个参数时,则要实现method方法。
eg. # include <iostream> # include <algorithm> using namespace std; *bool method(int a , int b){ //实现从大到小排序 return a>b; }* int main(){ int A[6] = {3, 5, 9 , 1 ,-3 ,18}; sort(A,A+6,method); for(int i = 0 ; i < 6 ; i++) cout<<A[i]<<" "; return 0; }
例题:有一条n个头的恶龙以及m个骑士,一个能力值为x的骑士可以被雇佣来砍掉恶龙一个直径不超过x的头,且需要支付x个金币。如何雇佣骑士才能砍掉恶龙所有的头,且需要支付的金币最少?注意,一个骑士只能砍掉一个头,且不能被重复雇佣。
[输入格式]
输入包含多组数据。第一行为正整数n和m(1<=n,m<=20000);一下n行每行为一个整数,即恶龙头的直径;以下m行每行一个正整数,即每个骑士的能力值。输入结束的标志为n=m=0。
[输出格式]
对于每组数据,输出最少的花费。如果无解,输出”Loowater is doomed!”。
[样例输入]
2 3
5
4
7
8
4
2 1
5
5
10
0 0
[样例输出]
11
Loowater is doomed!
C++代码:
# include <iostream> # include <algorithm> using namespace std; int main(){ int n,m,*dragon,*loowater; while(cin>>n>>m){ dragon = new int ; loowater = new int[m]; for(int i = 0 ; i < n ; i ++) cin>>dragon[i]; for(int i = 0 ; i < m ; i ++) cin>>loowater[i]; sort(dragon,dragon+n); sort(loowater,loowater+m); int cur = 0; int cost = 0; for(int i = 0 ; i < m ; i ++){ if(loowater[i] >= dragon[cur]){ cost = cost + loowater[i]; if(++cur == n) break; } } if(cur < n) cout<<"Loowater is doomed!"<<endl; else cout<<cost<<endl; } }
相关文章推荐
- UVa11292 The Dragon of Loowater(sort排序直接比较)
- The Dragon of Loowater, UVa 11292
- HOJ 2620 The Dragon of Loowater
- 贪心/思维题 UVA 11292 The Dragon of Loowater
- uva11292 The Dragon of Loowater
- JAVA-勇者斗恶龙-The Dragon of Loowater,Uva 11292-排序后贪心
- The Dragon of Loowater(勇者斗恶龙)
- uva11292 The Dragon of Loowater (排序+贪心)
- 【算法设计与分析】The Dragon of Loowater
- 勇者斗恶龙(The Dragon of Loowater, UVa 11292)
- hdu 1092 The Dragon of Loowater
- UVa 11292 The Dragon of Loowater 简单的比较题
- (UVA step1)UVA 11292 The Dragon of Loowater(有n条恶龙,m个骑士,求杀死恶龙的最小代价)
- UVA 11292 The Dragon of Loowater
- hdu 1902 The Dragon of Loowater
- The Dragon of Loowater_uva11292_poj3646
- POJ 3646 The Dragon of Loowater
- The Dragon of Loowater,UVa 11292
- UVa11292 The Dragon of Loowater
- hdu-1902 The Dragon of Loowater