zoukankan      html  css  js  c++  java
  • 题解 P1717 【钓鱼】

    P1717 钓鱼

    贪心+堆的方法其他题解已经讲的很清楚了,这里放出萌新简洁的dp做法,如果有正确性问题希望大佬能够指出qwq

    #include<cstdio>
    using namespace std;
    #define max(a,b) (a>b ? a:b)
    int n,m,ans,f[101][1001],a[101],b[101],t[101];
    int main() {
    	scanf("%d%d",&n,&m);
    	m*=12;		//有(m*60/5)个五分钟
        
    	for (int i=1; i<=n; i++) scanf("%d",&a[i]);
    	for (int i=1; i<=n; i++) scanf("%d",&b[i]);
    	for (int i=2; i<=n; i++) scanf("%d",&t[i]);		//t[i]:从i-1到i的路程时间
    
    	//f[i][j]是走到第i个湖,时间为j的最多钓鱼数
        
    	for (int i=1,tmp=t[1]; i<=n; tmp+=t[i+1],i++)	//tmp是从1到i的路程总用时
    		for (int j=tmp; j<=m; j++){		//枚举到湖i的用时(至少是走到i的时间tmp)
    			for (int k=0; k<=j-tmp; k++) 		//在i钓鱼的时间
    				f[i][j]=max(f[i][j],f[i-1][j-t[i]-k]+max(0,k*a[i]-k*(k-1)/2*b[i]));
                    //钓鱼数为a[i]*k-(1+2+3+...+(k-1))*b[i]
    				ans=max(ans,f[i][j]);//更新答案
    			}
    	printf("%d",ans);
    }
    
  • 相关阅读:
    dracut-initqueue timeout
    Request.Url
    ipv4 ipv6数据库存储
    DataRow To DataTable
    AS ShortCut
    linq on 多链接条件
    SQL逻辑查询语句执行顺序
    ckeditor 使用几点
    SqlDataAdapter 更新插入 与 InsertBulkCopy
    HTTP协议改HTTPS
  • 原文地址:https://www.cnblogs.com/Randolph68706/p/11282775.html
Copyright © 2011-2022 走看看