您当前的位置: 首页 >  蓝桥杯

不牌不改

暂无认证

  • 0浏览

    0关注

    422博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

2021蓝桥杯模拟赛-跳跃

不牌不改 发布时间:2022-03-11 09:15:31 ,浏览量:0

题目

题目链接

题解

动态规划。

算是比较基础的状态方程和状态定义,但是难点在于处理负权重的情况。

代码
#include
using namespace std;

const int N = 1100;

int f[N][N], w[N][N], n, m;

int dir[2][9] = {-1, -2, -3, 0, -1, -2, 0, -1, 0, 
				 0, 0, 0, -1, -1, -1, -2, -2, -3};

int main()
{
	cin >> n >> m;
	
	for (int i = 1;i  f[i][j];
			int tmp = INT_MIN; // 难点就在于存在负权重的情况 
			for (int k = 0;k  0 && j+dir[1][k] > 0)
					tmp = max (tmp, f[i + dir[0][k]][j + dir[1][k]]);
			if (tmp != INT_MIN) // !! // 相当于tmp没有被赋值过,没有进入k的循环中 
				f[i][j] += tmp;
		}
	cout             
关注
打赏
1662186765
查看更多评论
0.0385s