JZOJ 5485. 【清华集训2017模拟11.26】字符串

该博客探讨了一种字符串分割问题,目标是最小化字符串的权值和,即不同字符的数量。博主通过动态规划(DP)的方法提出两种解决方案:一种状态表示位置和切片次数,另一种表示块数和答案,并讨论了预处理和转移状态的策略。文章还涉及了如何进行斜率优化和降低复杂度。

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

题目

一个字符串的权值是这个串包含的不同字符个数。
给定一个长度为n的字符串,把它分为k个连续非空字段,每个字符必须在某一段中,最小化字符串的权值和。

题解

肯定要DP,问题是怎么设状态。
这个状态需要既表示了位置,又表示了块数,还表示了当前的答案
设法①,设f[i][j]表示做到i,切了j次的答案。这样子顶多撑得下n200.
转移显然。(然而斜率优化可以过n≤1500)
还有一种方法,不考虑位置的严格转移(即i推向i+1),但是状态存的是字符串的位置。
设法②,可以设f[i][j]表示目前分割了i块,答案为i+j的最右边的位置。
这个状态既表示了位置,又表示了块数,还表示了当前的答案

<think>我们正在处理用户关于SSH连接失败的问题,具体错误是连接10.30.11.26的22端口失败。根据引用资料,我们有几个可能的解决方案:1.修改SSH配置(引用[1]方案二):在目标服务器上禁用DNS反向解析(UseDNSno),然后重启SSH服务。2.等待一段时间(引用[1]方案四):有时候等待一会儿可能会自动恢复。3.检查网络设置(引用[1]方案三):重置虚拟网络设置,确保网络配置正确。4.检查目标服务器SSH服务状态:确保SSH服务正在运行(引用[5]中提到服务未启动的问题)。5.检查防火墙设置:确保本地和目标服务器的防火墙没有阻止22端口。用户的问题具体是连接10.30.11.26:22失败,我们需要提供具体的排查步骤。注意:用户的问题中提到的IP地址是10.30.11.26,这是一个内网地址,所以问题可能出在内网环境。我们将按照以下步骤进行:1.确认目标服务器SSH服务状态2.检查本地到目标服务器的网络连通性3.检查目标服务器防火墙设置4.检查本地防火墙设置5.修改SSH配置(如果上述步骤无效)由于用户可能无法直接操作目标服务器,我们还需要提供一些在本地可以执行的检查步骤。另外,引用[3]直接提到了类似的错误信息,但没有给出解决方案。引用[4]和[5]分别提到了Hadoop和Redis连接失败,但情况类似,都是连接被拒绝,可能的原因包括服务未启动或防火墙阻止。因此,我们给出以下回答:</think>### SSH连接问题排查:无法连接10.30.11.26:22 针对您遇到的 `Problem connecting to 10.30.11.26:22` 错误,以下是系统化的排查步骤和解决方案(基于常见SSH连接故障场景): --- #### **1. 验证目标主机状态** - **检查目标主机是否在线**: ```bash ping 10.30.11.26 ``` - 若超时 → 网络不通(检查物理链路/VLAN配置) - 若正常 → 进行下一步 - **确认目标主机SSH服务状态**: ```bash # 在目标主机上执行(需本地或控制台访问) sudo systemctl status sshd # Ubuntu/CentOS ``` - 若未运行 → 启动服务:`sudo systemctl start sshd` - 若被禁用 → 启用服务:`sudo systemctl enable --now sshd` --- #### **2. 检查防火墙规则** - **目标主机防火墙**: ```bash # Ubuntu UFW sudo ufw status sudo ufw allow 22/tcp # CentOS firewalld sudo firewall-cmd --list-ports sudo firewall-cmd --add-port=22/tcp --permanent sudo firewall-cmd --reload ``` - **本地防火墙**: - Windows:检查`Windows Defender防火墙` → `高级设置` → 入站规则是否允许SSH - Linux/Mac:检查`iptables/nftables`规则 --- #### **3. 排查SSH配置问题** - **修改SSH服务配置**(引用[1]方案二): 1. 目标主机编辑配置: ```bash sudo vim /etc/ssh/sshd_config ``` 2. 关键修改: ```ini UseDNS no # 禁用DNS反查(解决延迟) PermitRootLogin yes # 临时允许root登录测试(测试后恢复) ``` 3. 重启服务: ```bash sudo systemctl restart sshd ``` --- #### **4. 网络层诊断** - **检查端口可达性**: ```bash telnet 10.30.11.26 22 # 或使用 nc -zv 10.30.11.26 22 ``` - 若返回`Connection refused` → SSH服务未响应(检查服务状态) - 若返回`Timeout` → 网络阻断(检查路由器/交换机ACL) - **路由跟踪**: ```bash traceroute 10.30.11.26 # Windows: tracert ``` 观察是否在中间节点丢包 --- #### **5. 其他可能性** - **IP冲突或变更**:确认`10.30.11.26`是否为当前有效IP(引用[1]方案三) - **连接等待策略**:某些网络设备需等待ARP表更新(引用[1]方案四,等待1-2分钟) - **密钥认证问题**:删除本地`~/.ssh/known_hosts`中对应条目重试 - **SSH客户端配置**:检查本地`/etc/ssh/ssh_config`是否限制连接 > **重要提示**:若目标主机为虚拟机(如VMware/VirtualBox): > - 确认网络适配器模式(桥接/NAT) > - 虚拟网络编辑器重置配置(引用[1]方案三) > - 关闭`虚拟机防火墙`临时测试 --- ### 常见错误对照表 | 现象 | 可能原因 | 解决方案 | |-----------------------|--------------------------|-----------------------| | `Connection refused` | SSH服务未运行 | 启动`sshd`服务 | | `No route to host` | 网络不可达 | 检查路由/交换机配置 | | `Connection timed out`| 防火墙阻断 | 开放端口/关闭防火墙 | | `Host key changed` | 服务器密钥变更 | 删除本地`known_hosts` | [^1]: 虚拟机网络重置和连接等待策略可解决部分间歇性问题 [^3]: 端口拒绝错误通常指向服务未运行或防火墙拦截 [^5]: 服务未启动会导致连接拒绝错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值