NOIP 2009 普及组 道路游戏

b站视频

https://www.bilibili.com/video/BV1iT4y1U7tV/

  • 时间复杂度 O ( n 3 O(n^3 O(n3)
#include 
using namespace std;const int N = 1009;
int n, m, p;
int gold[N][N];		//gold[i][j]:i号条路j时刻出现的金币
int cost[N];		//cost[i]:i号工厂购买机器人的费用 
int f[N];			//f[j]:j时刻得到的最多金币 int main() {cin >> n >> m >> p;for (int i = 1; i <= n; i ++) {for (int j = 1; j <= m; j ++) {cin >> gold[i][j];}}for (int i = 1; i <= n; i ++) cin >> cost[i];for (int j = 1; j <= m; j ++) {	for (int i = 1; i <= n; i ++) {//j-1时刻在i-1号马路机器人停止行走 //j时刻在i号马路购买一个机器人,行走k次int tmp = f[j - 1] - cost[i]; for (int k = 1; k <= min(m - j + 1, p); k ++) {int road = (i - 1) + k;if (road > n) road -= n;int time = (j - 1) + k;tmp += gold[road][time];f[time] = max(f[time], tmp);}}}cout << f[m];return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部