• POJ 1018


    做题时候陷入一个误区,就是担心出错不敢想,不敢写,这道题入手思路是对的,但是畏首畏尾,自己规定时间写不出来,大略览了他人题解发现自己思路是对的才敢开始着手写,学会分析和对自己有自信是练习的一个很重要的指标兼目标

    题目就是利用DP搜索,不过这道题没给出贷款,费用值的范围是一个很不应该的地方,因为这涉及变量存储以及算法时间估计

    #include <iostream>
    #include <algorithm>
    #include <queue>
    #include <string>
    #include <vector>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <string>
    #include <stack>
    #include <map>
    #include <set>
    using namespace std;
    
    const int maxp= 1111;
    const int maxn= 105;
    const int INF= 0x3f3f3f3f;
    
    int dv[maxn][maxp];
    int dev_b[maxn][maxn], dev_p[maxn][maxn];
    int mi[maxn];
    
    int main()
    {
    	int kase, n;
    	scanf("%d", &kase);
    
    	while (kase--){
    		int mx= -1, mn= INF;
    		scanf("%d", &n);
    
    		memset(dv, 0x3f, sizeof(dv));
    		for (int i= 0; i< n; ++i){
    			scanf("%d", mi+i);
    			for (int j= 0; j< mi[i]; ++j){
    				scanf("%d %d", dev_b[i]+j, dev_p[i]+j);
    				mx= max(mx, dev_b[i][j]);
    				mn= min(mn, dev_b[i][j]);
    			}
    		}
    
    		for (int i= 0; i< mi[0]; ++i){
    			dv[0][dev_b[0][i]]= dev_p[0][i];
    		}
    		for (int i= 1; i< n; ++i){
    			for (int j= 0; j< mi[i]; ++j){
    				int b= dev_b[i][j], p= dev_p[i][j];
    				for (int k= mn; k< b; ++k){
    					if (dv[i-1][k]>= INF){
    						continue;
    					}
    					dv[i][k]= min(dv[i][k], dv[i-1][k]+p);
    				}
    				for (int k= b; k<= mx; ++k){
    					if (dv[i-1][k]>= INF){
    						continue;
    					}
    					dv[i][b]= min(dv[i][b], dv[i-1][k]+p);
    				}
    			}
    		}
    		double ans= -1;
    		for (int i= mn; i<= mx; ++i){
    			if (dv[n-1][i]>= INF){
    				continue;
    			}
    			ans= max(ans, ((double)i)/dv[n-1][i]);
    		}
    
    		printf("%.3lf
    ", ans);
    	}
    }
    
  • 相关阅读:
    Django项目总结:Model高级
    Django项目总结:Response和Cookie
    数据库:索引
    数据库:视图
    数据库:约束
    MySQL:常用命令
    MySQL:安装和连接
    时间戳和正则表达式
    Java 类的概念与使用
    JAVA复习题
  • 原文地址:https://www.cnblogs.com/Idi0t-N3/p/14685419.html
Copyright © 2020-2023  润新知