두 갈래 나무의 프로그래머의 문제 풀이

5262 단어 dp
WHX는 프로그램원숭이의 엄청난 비밀을 발견했다. 그녀는 나무에 있는 바나나를 즐겨 먹는다. 숲속에 N그루의 두 갈래 나무가 있는데 높이는 각각 a[1]-a[n]이다. 나무마다 b[1]-b[n]그루의 바나나가 있다. 프로그램원숭이는 모든 나무보다 높은 산봉우리에 서서 처음으로 임의의 나무에 뛰어들 수 있지만 그 후에 자신과 평행하는 나무나 자신이 있는 위치보다 낮은 나무에 떨어지고 바나나를 따야 한다.실례지만 프로그램원숭이는 모두 최대 몇 개의 바나나를 채취할 수 있습니까?
물문제!
dp
사실 미사일 요격 같아요.
#include 
using namespace std;
int a[55],b[55],f[55];
int main(){
	int n,ans=0;
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=1;i<=n;i++)cin>>b[i];
	for(int i=1;i<=n;i++){
		for(int j=1;j<i;j++)
			if(a[j]>=a[i])f[i]=max(f[i],f[j]);
		f[i]+=b[i];
		ans=max(ans,f[i]);
	}cout<<ans;
	return 0;
}

좋은 웹페이지 즐겨찾기