//贪心,开始的时候直接按Dps排序,w了
#include<iostream>
#include<algorithm>
using namespace std;
struct A
{
int a, b;
}run[25];
bool cmp(A c, A d)
{
if((double)c.b/c.a == (double)d.b/d.a)
return c.a < d.a;
else
return (double)c.b/c.a > (double)d.b/d.a;
}
int main()
{
int n;
while(scanf("%d", &n) != EOF)
{
int i;
for( i=0; i < n; i++ )
scanf("%d%d", &run[i].a, &run[i].b);
sort(run, run+n, cmp);
int t = 0, s = 0;
for( i=0; i < n; i++ )
{
s += (t+run[i].a) * run[i].b;
t += run[i].a;
}
printf("%d\n", s);
}
return 0;
}hdu 4310 Hero 贪心
最新推荐文章于 2021-10-26 10:05:50 发布
本文通过一个具体的实例展示了如何使用贪心算法来解决任务调度的问题。代码中定义了一个结构体来存储任务的处理时间和收益,并实现了比较函数用于按照单位时间收益进行排序。通过对输入的任务列表进行排序并计算总收益,演示了贪心策略的有效性。
488

被折叠的 条评论
为什么被折叠?



