10026 - Shoemaker's Problem(贪心)
来源:互联网 发布:美国原油库存eia数据 编辑:程序博客网 时间:2024/06/05 12:42
该题是说有n个任务,每个任务都有一个需要的时间,还有一个价格,这个价格的意思是:在开始处理该任务之前的每一天都亏损这个价格,问最小亏损的安排是什么样的。
YY了一下,发现样例是按照:价格/时间 进行了排序,其次按照编号排序。
大概的原理类似于性价比之类的吧,从样例就可以看出来,不一定要先处理价格高的就好,还有完成天数的限制。
至于这个贪心方法的证明,网上搜到一个:对于为什么贪心策略是这个样子的,我们不妨拿相邻的两个事件a、b来说明一下。由于a、b之后的事件是固定的,所以我们无论排成ab还是排成ba后面部分的损失都是固定的,那么损失的差别主要来源于究竟是排成ab还是排b成a。排ab的损失为ta*fb,排ba的损失为tb*fa,那么如果ta*fb<tb*fa,我们就排成ab,这样可以得到fa/ta>fb/tb,推而广之,就得到了我们的贪心策略。
细节参见代码:
#include<bits/stdc++.h>using namespace std;typedef long long ll;const double eps = 1e-6;const int maxn = 1000;int T,n,m;struct node{ double t,v,cc; int id; bool operator < (const node& rhs) const { if(fabs(cc - rhs.cc)>eps) return cc > rhs.cc; else return id < rhs.id; }}a[maxn];int main() { scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%lf%lf",&a[i].t,&a[i].v); a[i].id = i+1; a[i].cc = a[i].v / a[i].t; } sort(a,a+n); printf("%d",a[0].id); for(int i=1;i<n;i++) printf(" %d",a[i].id); printf("\n"); if(T) printf("\n"); } return 0;}
0 0
- uva - 10026 - Shoemaker's Problem(贪心)
- UVA - 10026 Shoemaker's Problem(贪心)
- 10026 - Shoemaker's Problem(贪心)
- uva 10026 Shoemaker's Problem (贪心)
- UVa 10026 Shoemaker's Problem 贪心
- UVA 10026 Shoemaker's Problem (贪心)
- uva 10026 Shoemaker's Problem 贪心
- UVa 10026 Shoemaker's Problem (贪心)
- uva 10026 Shoemaker's Problem _贪心
- UVA - 10026 Shoemaker's Problem 贪心
- UVA 10026-Shoemaker’s problem(贪心)
- Shoemaker's Problem - UVa 10026 贪心
- uva 10026 Shoemaker's Problem(贪心+排序)
- uva10026 - Shoemaker's Problem(贪心)
- [贪心]Shoemaker's Problem uva10026
- 10026 - Shoemaker's Problem
- 10026 - Shoemaker's Problem
- 10026 - Shoemaker's Problem
- DbUtils在SQLite中的应用
- 小白书隐式图搜索之八数码问题
- 递归
- Unity物理引擎:Charactor Controller简介
- classpath & classpath*
- 10026 - Shoemaker's Problem(贪心)
- LeetCode OJ4 Median of Two Sorted Arrays 小结
- Eclipse启动Weblogic控制台显示乱码解决办法
- 最长公共子序列
- NSDate的一个分类,判断是否是今天,昨天,今年,获得与当前时间的差距,返回一个只有年月日的日期
- hdu4099(trie树,斐波那契数列)
- B\S备忘录28——EF强行多租户效果?谁来进谁的库
- C++中不能被声明为虚函数的函数
- Objective-C 学习笔记 12 预处理程序