原题链接:http://acm.uestc.edu.cn/problem.php?pid=1369&cid=192
分析:DP,dp[i][0]表示第i个人不是lover时的最小值,dp[i][1]表示是的情况.
I'm Hungry
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<functional>
#define maxn 100005
using namespace std;
int num[maxn],dp[maxn][];
int main()
{
int T,n,cas=;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=;i<n;i++)
scanf("%d",&num[i]);
dp[][]=num[];dp[][]=num[];
for(int i=;i<n;i++)
{
dp[i][]=num[i]+min(dp[i-][],dp[i-][]);
dp[i][]=dp[i-][]-num[i-]+;
}
int ans=min(dp[n-][],dp[n-][]);
printf("Case #%d: %d\n",cas++,ans);
}
return ;
}