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;
}

  

posted @ 2011-08-23 10:36  zqynux  阅读(187)  评论(0编辑  收藏  举报