社区讨论

90pts求调

P1616疯狂的采药参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@misegzff
此快照首次捕获于
2025/12/05 13:04
3 个月前
此快照最后确认于
2025/12/07 00:02
2 个月前
查看原帖
为什么一维数组可以过,vector过不了(MLE)?
CPP
#include<iostream>
#include<vector>

int t, m, tm[10100], val[10100];
std::vector<std::vector<long long> > dp;

signed main()
{
	std::cin >> t >> m;
	for (int i = 1; i <= m; i++)
	{
		std::cin >> tm[i] >> val[i];
	}
	dp.resize(m + 1);
	for (int i = 0; i <= m; i++)
	{
		dp[i].resize(t + 1);
	}
	for (int i = 1; i <= m; i++)
	{
		for (int j = 1; j <= t; j++)
		{
			if (tm[i] > j)
			{
				dp[i][j] = dp[i - 1][j];
				continue;
			}
			dp[i][j] = std::max(dp[i - 1][j], dp[i][j - tm[i]] + val[i]);
		}
	}
	std::cout << dp[m][t];
	return 0;
}
代码如上

回复

1 条回复,欢迎继续交流。

正在加载回复...