sicily 1146

对动态规划还不是很了解。。做了很久。。

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

你可能感兴趣的:(sicily 1146)