题目链接:
ACdream 1079
题意:
有
n
个地板 ,你可以 从
题解:
跳到
n
点的有
n−1
点和
n−2
点 。
设用 dp[i] 表示能够跳到第 i 个点的最长天数。
所以转移方程为:
dp[i]=min(a[i],max(dp[i−1],dp[i−2]));
最后的答案就是: dp[n−1] 。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int ans,n;
int dp[1234];
int a[1234];
int main()
{
cin>>n;
for (int i=0;i<n;i++)
{
cin>>a[i];
dp[i] = a[i];
}
dp[1]=min(a[0],a[1]);
for (int i=2;i<n;i++)
{
dp[i]=min(a[i],max(dp[i-1],dp[i-2]));
}
cout<<dp[n-1]<<endl;
return 0;
}