逃生

本文介绍了一种使用动态规划解决求生路径问题的方法,通过定义dp[i][j]为在(i,j)位置的血量,从起点出发,考虑四个不同方向的行走路线,最终目标是找到达到四个出口时的最大血量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:
在这里插入图片描述
在这里插入图片描述
代码如下:

#include<bits/stdc++.h>
using namespace std;
#define NIL 1e9
int a[1005][1005],dp[1005][1005],dir[4][2] = {{1,1},{-1,1},{-1,-1},{1,-1}};
int main()
{
	int n,m,x,y,v,c,ans;
	cin >> n >> m >> x >> y >> v >> c;
	for(int i = 1;i <= n;i++)
		for(int j = 1;j <= m;j++)
			cin >> a[i][j];
	for(int k = 0;k < 4;k++){
		for(int i = x;i > 0 && i <= n;i -= dir[k][0]){
			for(int j = y;j > 0 && j <= m;j -= dir[k][1]){
				if(i == x && j == y) dp[i][j] = v;	//在出发地血量为v
				else if(i == x) dp[i][j] = min(c,dp[i][j + dir[k][1]] + a[i][j]);//到达出发地这一行要考虑前一步从哪里来的 
				else if(j == y) dp[i][j] = min(c,dp[i + dir[k][0]][j] + a[i][j]);
				else dp[i][j] = min(c,max(dp[i][j + dir[k][1]] + a[i][j],dp[i + dir[k][0]][j] + a[i][j])); 
				if(dp[i][j] <= 0) dp[i][j] = -NIL;//说明这人在此处挂了 
			}
		}
	}
	ans = max(max(dp[1][1],dp[1][m]),max(dp[n][1],dp[n][m]));//将这个人到达四个出口时的血量中选取最大值 
	if(ans < 0) cout << "-1" << endl;
	else cout << ans << endl;
	return 0;
}

这是一道dp题,dp[i][j]代表在i,j位置的血量。那么我们从起点可以往四个不同的方向走,每走到一个新的位置,你要考虑你是从哪个位置过来的。如果走到与起点的横坐标相同的位置,那么前一步要么是从左边来的,要么是从右边来的,不可能是从上下边来的。如果走到与起点纵坐标相同的地方,要么是从上边来的,要么是从下边来的,不可能是从左右边过来的。排除这两种特殊情况,其余位置的前一步要考虑两个方向。如果dp[i][j] < 0则代表这个人走到此处挂了,那我们需要将dp[i][j]赋一个很小的值,如果这个值不够小,可能会导致后面的判断出错(可能会死而复生)。最后将这个人到达四个出口时最大的血量跳出来,如果是负数就代表肯定要挂输出-1即可,否则就输出最大血量的那个值。

### Open vSwitch 逃生模式的配置与使用场景 Open vSwitch(OVS)的逃生模式(Fail-Open Mode)是一种在控制器不可用时确保网络流量继续流动的机制。当控制器与 OVS 的连接中断时,OVS 可以切换到逃生模式,从而允许数据包根据预定义的本地规则进行转发[^1]。 #### 配置方法 要启用 OVS 的逃生模式,可以通过以下步骤完成: 1. **设置桥接器的控制器模式为 secure-fail** 在 OVS 中,可以通过命令将桥接器的 fail-mode 设置为 secure 或 standalone。secure 模式下,如果控制器不可用,则会进入逃生模式。 ```bash ovs-vsctl set-fail-mode <bridge-name> secure ``` 2. **添加默认流表项** 为了确保在控制器不可用时流量能够正常转发,可以预先配置一些默认流表项。例如,允许所有流量通过: ```bash ovs-ofctl add-flow <bridge-name> "priority=0,actions=NORMAL" ``` 3. **验证配置** 使用以下命令检查桥接器的 fail-mode 和流表项是否正确配置: ```bash ovs-vsctl get bridge <bridge-name> fail_mode ovs-ofctl dump-flows <bridge-name> ``` #### 使用场景 逃生模式适用于以下场景: - **高可用性环境**:在需要确保网络服务不中断的情况下,逃生模式可以作为一种备份机制,在控制器故障时维持基本的网络连通性。 - **控制器性能瓶颈**:当控制器处理能力不足或延迟较高时,逃生模式可以通过本地流表规则减少对控制器的依赖。 - **开发和测试阶段**:在开发或测试环境中,逃生模式可以帮助开发者专注于功能验证而不必担心控制器的稳定性。 ```python # 示例代码:Python 脚本用于自动化配置 OVS 的逃生模式 import os def configure_fail_open(bridge_name): os.system(f"ovs-vsctl set-fail-mode {bridge_name} secure") os.system(f"ovs-ofctl add-flow {bridge_name} 'priority=0,actions=NORMAL'") if __name__ == "__main__": configure_fail_open("br0") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值