您的位置:首页 > 其它

sicily 1146

2011-01-23 16:58 381 查看
对动态规划还不是很了解。。做了很久。。

#include <iostream>
#include <cstring>
using namespace std;
struct {
	int t;
	int v;
}data[101];
int ans[1001];
int T, M;
int main() {
	//freopen("C:/Users/Alfred/Desktop/1.txt", "r", stdin);
	cin >> T >> M;
	memset(ans, 0, sizeof(ans));
	int i = 0;
	for(int j = 0; j < M; j++) {
		cin >> data[i].t >> data[i].v;
		if(data[i].t > T) continue;
		i++;
	}
	int _max = 0;
	for(int j = 0; j < i; j++) {
		for(int k = T; k >= data[j].t; k--) {
			if(ans[k] < ans[k - data[j].t] + data[j].v) {
				ans[k] = ans[k - data[j].t] + data[j].v;
				if(_max < ans[k]) _max = ans[k];
			}
		}
	}
	cout << _max << endl;
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: