【贪心】【01规划】luogu 1570 KC喝咖啡
2013-10-13 11:10
169 查看
题目链接:http://oj.luogu.org:8888/problemshow.php?pid=1570
分析:
1、裸搞。
按比值降序排列,然后去前m个
60分。
2、0 1 分数规划
关于 0 1 规划:http://blog.csdn.net/hhaile/article/details/8883652
设最终答案为R,x[i]为0或1,则 Σ(v[i]*x[i]) / Σ(c[i]*x[i]) = R
即 Σ(v[i]*x[i]) - Σ(c[i]*x[i]*R) =0
即 Σ[(v[i]*x[i]) - (c[i]*x[i]*R)] =0
设 f(R)= Σ[(v[i]*x[i]) - (c[i]*x[i]*R)]
二分R,求f(R)=0
当f(R)<0时,R偏大
当f(R)>0时,R偏小
计算每一对 v[i] - (c[i]*R),排序求前m大的和即为f(R) 。
代码:
60:
100:
分析:
1、裸搞。
按比值降序排列,然后去前m个
60分。
2、0 1 分数规划
关于 0 1 规划:http://blog.csdn.net/hhaile/article/details/8883652
设最终答案为R,x[i]为0或1,则 Σ(v[i]*x[i]) / Σ(c[i]*x[i]) = R
即 Σ(v[i]*x[i]) - Σ(c[i]*x[i]*R) =0
即 Σ[(v[i]*x[i]) - (c[i]*x[i]*R)] =0
设 f(R)= Σ[(v[i]*x[i]) - (c[i]*x[i]*R)]
二分R,求f(R)=0
当f(R)<0时,R偏大
当f(R)>0时,R偏小
计算每一对 v[i] - (c[i]*R),排序求前m大的和即为f(R) 。
代码:
60:
#include<cstdio> #include<cmath> #include<algorithm> using namespace std; typedef struct { int a,b; double c; } nc; nc t[201]; int n,m,i; bool cmp(nc a1,nc a2) { if (fabs(a1.c-a2.c)<0.00000001) return a1.a<a2.a; else return a1.c>a2.c; } int main() { scanf("%d%d",&n,&m); for (i=1;i<=n;i++) scanf("%d",&t[i].a); for (i=1;i<=n;i++) { scanf("%d",&t[i].b); t[i].c=t[i].a/(t[i].b*1.0); } sort(t+1,t+1+n,cmp); int m1=0,m2=0; for (i=1;i<=m;i++) { m1+=t[i].a; m2+=t[i].b; } printf("%.3lf",m1/(m2*1.0)); return 0; }
100:
#include<cstdio> using namespace std; int n,m,i,j,k;double ma,ans1,ans2;bool b[205]; struct jgtt { double c,v; }a[205]; int main() { scanf("%d%d",&n,&m); for(i=1;i<=n;i++) scanf("%lf",&a[i].v); for(i=1;i<=n;i++) scanf("%lf",&a[i].c); ans1=0;ans2=0; for(i=1;i<=m;i++) { ma=0;int ji; for(j=1;j<=n;j++) if(!b[j]&&((a[j].v+ans1)/(a[j].c+ans2))>ma) { ma=(a[j].v+ans1)/(a[j].c+ans2); ji=j; } b[ji]=1; ans1+=a[ji].v; ans2+=a[ji].c; } printf("%0.3f",ans1/ans2); }
相关文章推荐
- WHOIS类的修改版
- 此博客从今日起正式启用
- APIO 2013行记
- SJTUSC 行记
- 最短路
- 最小生成树
- 差分约束笔记
- 【转】国家集训队论文分类
- 【线段树】hdu 1166 敌兵布阵
- 【线段树】hdu 1394 Minimum Inversion Number
- 【线段树】hdu 1754 I hate it
- 【宽搜】wikioi 1225 八数码难题
- 【树形DP】wikioi 1163 访问艺术馆
- 【树形DP】wikioi 1380 没有上司的舞会
- 【递推】wikioi 1509 拯救LongMM
- 【水水水】tyvj Q1016 - Unit4 - 兔子繁殖
- 【洛谷1457 [usaco 2.1]城堡 The Castle】【深搜】
- 【洛谷2038 无线网络发射器选址】【模拟】
- 【洛谷1031 均分纸牌】【模拟】
- 【洛谷1025 数的划分】【搜索】