TYVJ 1098 任务安排 解体报告
这题我还是没看太懂,准确的说是不知道方程是不是正确的,但是隐隐约约感觉又是对的额,嗯……题解的网站发上来吧,你们自己看去吧。
http://hi.baidu.com/greeeeeeen/blog/item/9ae3b0fa52241d939f51468c.html
代码如下:
#include <stdio.h> #include <stdlib.h> int t[5001], f[5001]; int c[5001]; int main(int argc, char **argv) { int i, j; int n, s; int a, b; scanf("%d%d", &n, &s); for(i = 1; i <= n; i++){ scanf("%d%d", &a, &b); t[i] = a + t[i - 1], f[i] = b + f[i - 1]; c[i] = 0x7FFFFFFF; } for(i = 1; i <= n; i++){ for(j = 1; j <= i; j++){ a = c[j - 1] + s * (f[n] - f[j - 1]) + t[i] * (f[i] - f[j - 1]); if(c[i] > a){ c[i] = a; } } } printf("%d\n", c[n]); return 0; }