Uva11729 Commando War

本文探讨了在特定比赛中使用贪心算法进行最优策略选择的方法。通过实例分析,讲解了如何利用排序技巧来优化决策过程,实现资源的最大化利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相邻两个士兵交换顺序,不会对其他的有所影响,贪心考虑两两之间交换策略即可。

sort大法好。印象中这类排序题里有一种会卡sort,只能冒泡排序,然而到现在还没有遇到

 

 1 /**/
 2 #include<iostream>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<algorithm>
 6 using namespace std;
 7 struct node{
 8     int b;
 9     int j;
10 };
11 int cmp(const node a,const node b){
12     return a.j>b.j;
13 }
14 int main(){
15     int n,b,j;
16     int case_count=1;
17     while(scanf("%d",&n)!=EOF &&n){
18         struct node sod[10500];
19         int i;
20         for(i=1;i<=n;i++)
21             scanf("%d%d",&sod[i].b,&sod[i].j);
22         sort(sod+1,sod+n+1,cmp);
23         int s=0;
24         int ans=0;
25         for(i=1;i<=n;i++){
26             s+=sod[i].b;
27             ans=max(ans,s+sod[i].j);
28             }
29         printf("Case %d: %d\n",case_count++,ans);    
30     }    
31     
32     return 0;
33     
34 }

 

转载于:https://www.cnblogs.com/SilverNebula/p/6039040.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值