Poj 1018 题解
来源:互联网 发布:js 数组 clear 编辑:程序博客网 时间:2024/06/10 18:46
这是一道简单的dp题。
首先想想,b/p最大,就是想让b最大,p最小。
对了,还有的就是用c++ 提交
Code:
#include<cstdio>#include<iostream>#include<cstring>using namespace std;int t,n;struct node{ int b[110],p[110]; int k;}Syt[110];int Maxx;void Input(){ Maxx=0; scanf("%d",&n); for(int i=1;i<=n;i++) {scanf("%d",&Syt[i].k);for(int j=1;j<=Syt[i].k;j++){ scanf("%d%d",&Syt[i].b[j],&Syt[i].p[j]); Maxx=max(Maxx,Syt[i].b[j]);} }}int f[110][11000];double sum;void Solve(){ memset(f,63,sizeof(f)); for(int i=1;i<=Maxx;i++) f[0][i]=0; for(int i=1;i<=n;i++) for(int j=1;j<=Syt[i].k;j++) for(int k=1;k<=Syt[i].b[j];k++) f[i][k]=min(f[i][k],f[i-1][k]+Syt[i].p[j]); sum=0; for(int i=1;i<=Maxx;i++) sum=max(sum,1.0*i/f[n][i]);}void Output(){ printf("%.3lf\n",sum);}int main(){ freopen("a.in","r",stdin); freopen("a.out","w",stdout); int t; scanf("%d",&t); while(t--) { Input(); Solve();Output(); } return 0;}
0 0
- Poj 1018 题解
- POJ 1018 Communication System 题解
- POJ 1011 题解
- poj-1050 题解
- poj-1088题解
- poj-1159题解
- POJ 1009题解
- POJ 1458题解
- Poj 2352 Stars 题解
- POJ 2739题解---小菜
- POJ 1753题解
- POJ 1328题解
- POJ 2049题解
- poj 2679题解
- poj 1149题解
- poj 2790迷宫题解
- POJ - Counterfeit Dollar 题解
- poj 2318 TOY题解
- TO_DATE、TO_CHAR等字符转换函数
- python 调用c写的dll/so
- 解决ResizeMenu与viewpager滑动冲突
- Unique Paths
- 第四章 知识导图 与实验四
- Poj 1018 题解
- MAC 命令行
- log4j配置,在springmvc中配置slf4j+log4j
- Unique Paths II
- 时频分析和MATLAB中的实现
- WordPress调用站外文章解决方法
- java中调用存储过程或函数
- 设想2015年,云计算厂商将与线下渠道紧密合作
- Trapping Rain Water