动规0pts求条
  • 板块灌水区
  • 楼主125125A
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/10/23 13:53
  • 上次更新2024/10/23 16:41:59
查看原帖
动规0pts求条
1038444
125125A楼主2024/10/23 13:53

# include <bits/stdc++.h>
# define ll long long
using namespace std;

int t, m;
int Time[105], val[105];
int dp[105][105] = {0};

inline ll read() {
	ll x = 0, f = 1;
	char c = getchar();
	while (c < '0' || c > '9')
		f = (c == '-' ? -1 : f), c = getchar();
	while (c >= '0' && c <= '9')
		x = (x << 1) + (x << 3) + (c ^ 48), c = getchar();
	return x * f;
}
inline void write(ll x) {
	if (x < 0)
		putchar('-'), x = -x;
	if (x > 9)
		write(x / 10);
	putchar(x % 10 + '0');
}

int main () {
	
	t = read();
	m = read();
	
	for (int i = 1;i <= m;i++){
		Time[i] = read();
		val[i] = read();
	}
	
	for (int i = 1;i <= m;i++){
		for (int j = 1;j <= t;j++){
			if (j >= Time[j]) dp[i][j] = max (dp[i - 1][j], dp[i - 1][j - Time[i]] + val[i]);
			else dp[i][j] = dp[i - 1][j];
		}
	}
	
	cout << dp[m][t];
	
	return 0;
}
2024/10/23 13:53
加载中...