倒推消除后效性,dp有贪心的形


类似背包,正着推不知道选和不选谁更优
倒着递推消除前面的影响
以后当前状态对后面有影响时,可以倒着推,消除后效性

dp有贪心的形,如最大、最小等
#include<bits/stdc++.h>
using namespace std;
int const N=1e4+7;
int n,k;
vector<int>v[N];
int f[N];
int main(){
	cin >> n >> k;
	for(int i=1;i<=k;++i){
		int a,b;cin >> a >> b;
		v[a].push_back(b);
	}
	for(int i=n;i>=1;--i){
		if(v[i].size()){
			for(int j=0;j<v[i].size();++j){
				f[i]=max(f[i],f[i+v[i][j]]);
			}
		}
		else f[i]=f[i+1]+1;
	}
	cout << f[1];
	return 0;
} 


全部评论

相关推荐

爱吃肉的伊登在写日记:好棒,27届简历能做成这个样子,但是第一个项目感觉cover住难度还是不小的,特别是二面的时候肯定要对分布式系统设计这一块儿有高出正常面试者的水平才行
点赞 评论 收藏
分享
海螺很能干:每次看到这种简历都没工作我就觉得离谱
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务