简单DP
/* * tyvj-1195 * mikew * 2012-9-29 * simple DP */ #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAXN 111 int a[MAXN], b[MAXN], c[MAXN]; int opt[MAXN][2]; /* 0: chopsticks; 1: spoon */ int n; int min(int e1, int e2) { return e1<e2?e1:e2; } int main(void) { int i; scanf("%d", &n); for(i=0; i<n; i++) scanf("%d%d%d", a+i, b+i, c+i); opt[0][0]=b[0]; opt[0][1]=c[0]+a[0]; for(i=1; i<n; i++) { opt[i][0]=min(opt[i-1][0], opt[i-1][1]+c[i])+b[i]; opt[i][1]=min(opt[i-1][1], opt[i-1][0]+c[i])+a[i]; } printf("%d\n", min(opt[n-1][0], opt[n-1][1])); return 0; }