首页 > 其他分享 >fishing

fishing

时间:2023-06-08 13:11:20浏览次数:27  
标签:endt int fish long fishing offf

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
const int N=1e3+7;
int fish[N],offf[N],st[N],t[N],maxtime[N];
int endt;
int f[N][N],dp[N][N];
signed main(){
	freopen("fishing.in","r",stdin);
	freopen("fishing.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++) scanf("%lld",&fish[i]);
	for(int i=1;i<=n;i++) scanf("%lld",&offf[i]);
	for(int i=1;i<=n-1;i++){
		scanf("%lld",&t[i]);
		st[i+1]=st[i]+t[i];
	}
	cin>>endt;
	for(int i=1;i<=n;i++){
		for(int j=1;fish[i]>0;j++){
			f[i][j]=f[i][j-1]+fish[i];
			fish[i]-=offf[i];
			maxtime[i]=j;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=endt;j++){
			for(int k=0;k<=j-st[i]&&k<=maxtime[i];k++){//保证k时刻有鱼并且可以走到。 
				int time_left=j-t[i-1]-k;//时间-走到i的位置-在i的k时间。 
				dp[i][j]=max(dp[i][j],dp[i-1][time_left]+f[i][k]);//在i鱼塘钓k分钟 
			}
		}
	}
	int ans=-1;
	for(int i=1;i<=n;i++){
		ans=max(ans,dp[i][endt]);
	}
	printf("%lld",ans);
	return 0;
}

标签:endt,int,fish,long,fishing,offf
From: https://www.cnblogs.com/Zimo233/p/17466174.html

相关文章

  • UVa 757 / POJ 1042 / East Central North America 1999 Gone Fishing (枚举&贪心&想
    757-GoneFishingTimelimit:3.000secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=698http://poj.org/problem?id=1042Johnisgoingonafishingtrip.Hehas h hoursavailable( ),andther......
  • UVA - 757 Gone Fishing 贪心+枚举
    题目大意:有n个湖泊,每个湖泊最初的5分钟能钓到f条鱼,每五分钟减少d条鱼,鱼的数目不能小于d也不能为负数,求在h小时能钓到的鱼的最大数目和在每个池塘带了多少分钟解题思路:一个个枚举,如果用总时间减去到达另一个湖泊的时间的话,就表示它可以在两个湖泊随意行走了,然后在这些时间找到优解,并......
  • 鱼塘钓鱼(fishing)
    鱼塘钓鱼(fishing)时间限制:1000ms      内存限制:65536KB提交数:149   通过数:81 三种做法:纯贪心做法堆维护DP【题目描述】有N个鱼塘排成一排(N<100),每个......
  • Fishing
    ProblemStatementOnanumberline,thereare$N$fishswimming.Fish$i$,whichhasaweightof$W_i$,isatthecoordinate$X_i$attime$0$andmovesatas......
  • [abc274F] Fishing 题解
    比较有趣的用点思维的题。在学校和DYS一起推出来的题,庆祝AT复活写个题解。感觉用无序列表列出自己思绪的过程很简洁扼要,但是行文节奏过快。介于我想重现自己今天上午......