POJ 2182 Jumping Cows
こんな簡単なDPが眠っていたとは。。。
#include <cstdio> #include <algorithm> using namespace std; int p; int s[150002]; int dp[150002][2]; int main(){ scanf("%d",&p); for(int i = 1;i <= p;i++)scanf("%d",&s[i]); for(int i = 1;i <= p;i++){ dp[i][0] = max(dp[i-1][0],dp[i-1][1]-s[i]); dp[i][1] = max(dp[i-1][1],dp[i-1][0]+s[i]); } printf("%d\n",max(dp[p][0],dp[p][1])); return 0; }