细说背包问题 - 导入

从“数字金字塔”说起

观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。
在这里插入图片描述
在上面的样例中,13 -> 8 -> 26 -> 15 -> 24的路径得到的和最大:86。

解题
  • 我们要在所有路径中,找到经过数字之和的最大值。每条路径都是可逆的,同一条路径,从上往下和从下往上,得到的数字之和是相同的。
  • 如果自上而下枚举的话,到第 n 行将得到 n 个数字,还需要再打擂台找最大值,多出一个步骤。我们采用自下而上枚举,到第一行就得到唯一的结果。
  • 约定用f[i][j]表示从第 n 行的某一列出发,到达第 i 行第 j 列的所有路径中数字之和的最大值, 要到达第 i 行第 j 列的位置,只有经过第 i + 1 行第 j 列,或者第 i + 1行第 j + 1列,也就是说
    f[i][j] = max(f[i + 1][j], f[i + 1][j + 1]) + a[i][j];
  • 递推到第 1 行第 1 列时,f[1][1]就是题目所求的最优路径的数字之和

这是完整代码

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

const int N = 1009;
int n, a[N][N];
int f[N][N];

int main() {
   
   
	cin >> n;
	for (int i = 1; i <= n
### 使用 `netstat -ano` 检查 80 端口占用情况 在 Windows 系统中,`netstat -ano` 命令可以用来查看本机所有端口的网络连接状态,并显示对应的进程 ID(PID)。该命令的输出格式通常包括协议类型(TCP 或 UDP)、本地地址、远程地址、连接状态以及关联的进程 ID[^1]。 执行以下命令来查找与 80 端口相关的连接: ```cmd netstat -ano | findstr :80 ``` 此命令会筛选出所有使用 80 端口的连接信息。例如,输出可能如下所示: ``` TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 ``` 其中,最后一列的数字 `4` 表示占用该端口的进程 ID(PID)为 4。可以通过任务管理器或以下命令查找对应进程的名称: ```cmd tasklist | findstr 4 ``` 如果系统提示 `'netstat' 不是内部或外部命令`,说明环境变量未正确配置。可以通过将 `c:\windows\system32\` 添加到系统路径(Path)中解决此问题[^2]。 ### 理解 `netstat -ano` 的输出 - **协议**:显示通信所使用的协议,如 TCP 或 UDP。 - **本地地址**:表示本机 IP 地址和端口号,例如 `192.168.1.1:80`。 - **远程地址**:表示远程主机的 IP 地址和端口号,如 `183.192.164.67:8864`。 - **状态**:表示当前连接的状态,如 `LISTENING`(监听中)或 `ESTABLISHED`(已建立连接)。 - **PID**:表示与该连接相关联的进程 ID,可用于查找具体的应用程序[^3]。 通过分析这些信息,可以判断 80 端口是否被占用,以及是由哪个程序占用。 ### 示例操作流程 1. 打开 CMD 并运行以下命令: ```cmd netstat -ano | findstr :80 ``` 2. 获取 PID 后,使用以下命令查询进程名称: ```cmd tasklist | findstr <PID> ``` 3. 如果需要终止占用 80 端口的进程,可使用: ```cmd taskkill /F /PID <PID> ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值