MSTP + Eth-Trunk配置实验 华为实验手册
1.1 实验介绍
1.1.1 关于本实验
以太网是当今现有局域网LAN(Local Area Network)采用的最通用的通信协议标准,以太网作为一种原理简单、便于实现同时又价格低廉的局域网技术已经成为业界的主流。
本实验主要介绍了LAN网络中的Eth-Trunk技术和MSTP技术。
1.1.2 实验目的
掌握手工模式及静态LACP模式下,Eth-Trunk的创建和维护。
掌握MSTP中包括MST域、MSTI、VLAN映射等配置和维护。
1.1.3 实验组网介绍
1.1.4 实验规划
SwitchA、SwitchB、SwitchC和SwitchD都运行MSTP。为实现VLAN2~VLAN10和VLAN11~VLAN20的流量负载分担,MSTP设置VLAN映射表,把VLAN2~VLAN10关联实例1,VLAN11~VLAN20关联实例2。为保证交换机A和B链路带宽和稳定性,部署Eth-Trunk。
表1-1设备MSTI主备根桥设计
1.2 实验任务配置
1.2.1 配置思路
1.在处于环形网络中的交换设备上配置MSTP基本功能。与PC相连的端口不用参与MSTP计算,将其设置为边缘端口。
2.配置保护功能,实现对设备或链路的保护。例如:在各实例的根桥设备指定端口配置根保护功能。
3.配置设备的二层转发功能。
1.1.2 配置步骤
步骤 1配置SwitchA、SwitchB、SwitchC和SwitchD域名为RG1的域,创建实例MSTI1和实例MSTI2
配置SwitchA的MST域。
system-view
[Huawei]sysname SwitchA
[SwitchA]stp region-configuration
[SwitchA-mst-region]region-name RG1
[SwitchA-mst-region]instance 1 vlan 2 to 10
[SwitchA-mst-region]instance 2 vlan 11 to 20
[SwitchA-mst-region]active region-configuration
[SwitchA-mst-region]quit
配置SwitchB的MST域。
system-view
[Huawei]sysname SwitchB
[SwitchB]stp region-configuration
[SwitchB-mst-region]region-name RG1
[SwitchB-mst-region]instance 1 vlan 2 to 10
[SwitchB-mst-region]instance 2 vlan 11 to 20
[SwitchB-mst-region]active region-configuration
[SwitchB-mst-region]quit
配置SwitchC的MST域。
system-view
[Huawei]sysname SwitchC
[SwitchC]stp region-configuration
[SwitchC-mst-region]region-name RG1
[SwitchC-mst-region]instance 1 vlan 2 to 10
[SwitchC-mst-region]instance 2 vlan 11 to 20
[SwitchC-mst-region]active region-configuration
[SwitchC-mst-region]quit
配置SwitchD的MST域。
system-view
[Huawei]sysname SwitchD
[SwitchD]stp region-configuration
[SwitchD-mst-region]region-name RG1
[SwitchD-mst-region]instance 1 vlan 2 to 10
[SwitchD-mst-region]instance 2 vlan 11 to 20
[SwitchD-mst-region]active region-configuration
[SwitchD-mst-region]quit
步骤 1配置MSTI1和MSTI2的根桥与备份根桥
配置SwitchA为MSTI1的根桥。
[SwitchA]stp instance 1 root primary
配置SwitchB为MSTI1的备份根桥。
[SwitchB]stp instance 1 root secondary
配置SwitchB为MSTI2的根桥。
[SwitchB]stp instance 2 root primary
配置SwitchA为MSTI2的备份根桥。
[SwitchA]stp instance 2 root secondary
步骤 1配置实例MSTI1和MSTI2中将要被阻塞端口的路径开销值大于缺省值
配置SwitchA的端口路径开销计算方法为华为计算方法。
[SwitchA]stp pathcost-standard legacy
配置SwitchB的端口路径开销计算方法为华为计算方法。
[SwitchB]stp pathcost-standard legacy
配置SwitchC的端口路径开销计算方法为华为计算方法,将端口GE1/0/2在实例MSTI2中的路径开销值配置为20000。
[SwitchC]stp pathcost-standard legacy
[SwitchC]interface gigabitethernet 1/0/2
[SwitchC-GigabitEthernet1/0/2]stp instance 2 cost 20000
[SwitchC-GigabitEthernet1/0/2]quit
配置SwitchD的端口路径开销计算方法为华为计算方法,将端口GE1/0/2在实例MSTI1中的路径开销值配置为20000。
[SwitchD]stp pathcost-standard legacy
[SwitchD]interface gigabitethernet 1/0/2
[SwitchD-GigabitEthernet1/0/2]stp instance 1 cost 20000
[SwitchD-GigabitEthernet1/0/2]quit
步骤 1使能MSTP,并将与终端相连的端口设置为边缘端口
在SwitchA上启动MSTP。
[SwitchA]stp enable
在SwitchB上启动MSTP。
[SwitchB]stp enable
在SwitchC上启动MSTP。
[SwitchC]stp enable
在SwitchD上启动MSTP。
[SwitchD]stp enable
配置SwitchC端口GE1/0/1为边缘端口。
[SwitchC]interface gigabitethernet 1/0/1
[SwitchC-GigabitEthernet1/0/1]stp edged-port enable
[SwitchC-GigabitEthernet1/0/1]quit
#(可选)配置SwitchC的BPDU保护功能。
[SwitchC]stp bpdu-protection
配置SwitchD端口GE1/0/1为边缘端口。
[SwitchD]interface gigabitethernet 1/0/1
[SwitchD-GigabitEthernet1/0/1]stp edged-port enable
[SwitchD-GigabitEthernet1/0/1]quit
(可选)配置SwitchD的BPDU保护功能。
[SwitchD]stp bpdu-protection
步骤 1配置处于环网中的设备的二层转发功能
SwitchA创建VLAN,并将相应接口加入VLAN。
[SwitchA]vlan batch 2 to 20
[SwitchA]interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1]port link-type trunk
[SwitchA-GigabitEthernet1/0/1]port trunk allow-pass vlan 2 to 20
[SwitchA-GigabitEthernet1/0/1]quit
[SwitchA]interface Eth-Trunk 1
[SwitchA-Eth-Trunk1]trunkport gigabitethernet 1/0/2
[SwitchA-Eth-Trunk1]trunkport gigabitethernet 1/0/3
[SwitchA-Eth-Trunk1]port link-type trunk
[SwitchA-Eth-Trunk1]port trunk allow-pass vlan 2 to 20
[SwitchA-Eth-Trunk1]quit
SwitchB创建VLAN,并将相应接口加入VLAN。
[SwitchB]vlan batch 2 to 20
[SwitchB]interface gigabitethernet 1/0/1
[SwitchB-GigabitEthernet1/0/1]port link-type trunk
[SwitchB-GigabitEthernet1/0/1]port trunk allow-pass vlan 2 to 20
[SwitchB-GigabitEthernet1/0/1]quit
[SwitchB]interface Eth-Trunk 1
[SwitchB-Eth-Trunk1]trunkport gigabitethernet 1/0/2
[SwitchB-Eth-Trunk1]trunkport gigabitethernet 1/0/3
[SwitchB-Eth-Trunk1]port link-type trunk
[SwitchB-Eth-Trunk1]port trunk allow-pass vlan 2 to 20
[SwitchB-Eth-Trunk1]quit
SwitchC创建VLAN,并将相应接口加入VLAN。
[SwitchC]vlan batch 2 to 20
[SwitchC]interface gigabitethernet 1/0/1
[SwitchC-GigabitEthernet1/0/1]port link-type access
[SwitchC-GigabitEthernet1/0/1]port default vlan 2
[SwitchC-GigabitEthernet1/0/1]quit
[SwitchC]interface gigabitethernet 1/0/2
[SwitchC-GigabitEthernet1/0/2]port link-type trunk
[SwitchC-GigabitEthernet1/0/2]port trunk allow-pass vlan 2 to 20
[SwitchC-GigabitEthernet1/0/2]quit
[SwitchC]interface gigabitethernet 1/0/3
[SwitchC-GigabitEthernet1/0/3]port link-type trunk
[SwitchC-GigabitEthernet1/0/3]port trunk allow-pass vlan 2 to 20
[SwitchC-GigabitEthernet1/0/3]quit
SwitchD创建VLAN,并将相应接口加入VLAN。
[SwitchD]vlan batch 2 to 20
[SwitchD]interface gigabitethernet 1/0/1
[SwitchD-GigabitEthernet1/0/1]port link-type access
[SwitchD-GigabitEthernet1/0/1]port default vlan 11
[SwitchD-GigabitEthernet1/0/1]quit
[SwitchD]interface gigabitethernet 1/0/2
[SwitchD-GigabitEthernet1/0/2]port link-type trunk
[SwitchD-GigabitEthernet1/0/2]port trunk allow-pass vlan 2 to 20
[SwitchD-GigabitEthernet1/0/2]quit
[SwitchD]interface gigabitethernet 1/0/3
[SwitchD-GigabitEthernet1/0/3]port link-type trunk
[SwitchD-GigabitEthernet1/0/3]port trunk allow-pass vlan 2 to 20
[SwitchD-GigabitEthernet1/0/3]quit
1.1 结果验证
1.1.1 检查配置结果
在网络计算稳定后,执行以下操作,验证配置结果。
在SwitchA上执行display stp brief命令,查看端口状态和端口的保护类型,结果如下:
[SwitchA] display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/1 DESI FORWARDING ROOT
0 Eth-Trunk1 DESI FORWARDING NONE
1 GigabitEthernet1/0/1 DESI FORWARDING ROOT
1 Eth-Trunk1 DESI FORWARDING NONE
2 GigabitEthernet1/0/1 DESI FORWARDING ROOT
2 Eth-Trunk1 ROOT FORWARDING NONE
在MSTI1中,由于SwitchA是根桥,SwitchA的端口Eth-Trunk1和GE1/0/1成为指定端口。在MSTI2中,SwitchA的端口GE1/0/1成为指定端口,端口Eth-Trunk1成为根端口。
在SwitchB上执行display stp brief命令,结果如下:
[SwitchB] display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/1 DESI FORWARDING ROOT
0 Eth-Trunk1 ROOT FORWARDING NONE
1 GigabitEthernet1/0/1 DESI FORWARDING ROOT
1 Eth-Trunk1 ROOT FORWARDING NONE
2 GigabitEthernet1/0/1 DESI FORWARDING ROOT
2 Eth-Trunk1 DESI FORWARDING NONE
在MSTI2中,由于SwitchB是根桥,SwitchB的端口Eth-Trunk1和GE1/0/1成为指定端口。在MSTI1中,SwitchB的端口GE1/0/1成为指定端口,端口Eth-Trunk1成为根端口。
在SwitchC上执行display stp interface brief命令,结果如下:
[SwitchC] display stp interface gigabitethernet 1/0/3 brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/3 ROOT FORWARDING NONE
1 GigabitEthernet1/0/3 ROOT FORWARDING NONE
2 GigabitEthernet1/0/3 ROOT FORWARDING NONE
[SwitchC] display stp interface gigabitethernet 1/0/2 brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/2 DESI FORWARDING NONE
1 GigabitEthernet1/0/2 DESI FORWARDING NONE
2 GigabitEthernet1/0/2 ALTE DISCARDING NONE
SwitchC的端口GE1/0/3在MSTI1和MSTI2中为根端口。SwitchC的另一个端口GE1/0/2,在MSTI2中被阻塞,在MSTI1中被计算为指定端口。
在SwitchD上执行display stp interface brief命令,结果如下:
[SwitchD] display stp interface gigabitethernet 1/0/3 brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/3 ROOT FORWARDING NONE
1 GigabitEthernet1/0/3 ROOT FORWARDING NONE
2 GigabitEthernet1/0/3 ROOT FORWARDING NONE
[SwitchD] display stp interface gigabitethernet 1/0/2 brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/2 ALTE DISCARDING NONE
1 GigabitEthernet1/0/2 ALTE DISCARDING NONE
2 GigabitEthernet1/0/2 DESI FORWARDING NONE
SwitchD的端口GE1/0/3在MSTI1和MSTI2中为根端口。SwitchD的另一个端口GE1/0/2,在MSTI1中被阻塞,在MSTI2中被计算为指定端口。
相关文章:
MSTP + Eth-Trunk配置实验 华为实验手册
1.1 实验介绍 1.1.1 关于本实验 以太网是当今现有局域网LAN(Local Area Network)采用的最通用的通信协议标准,以太网作为一种原理简单、便于实现同时又价格低廉的局域网技术已经成为业界的主流。 本实验主要介绍了LAN网络中的Eth-Trunk技术…...
滚动菜单 flutter
想实现这个功能: 下面的代码可以实现: import package:flutter/material.dart;void main() > runApp(MyApp());class MyApp extends StatelessWidget {static const String _title Flutter Code Sample;overrideWidget build(BuildContext context)…...
javaee springMVC数字类型转换之通过注解的方式
po 在属性上增加注解 NumberFormat(pattern “#,#.#”) package com.test.pojo;import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.NumberFormat;import java.util.Date;public class Users {private int uid;pr…...
SQL中CASE的用法
在SQL中,CASE语句是一种条件表达式,用于根据条件执行不同的操作。它有两种形式:简单CASE表达式和搜索CASE表达式。 简单CASE表达式的语法如下: CASE expressionWHEN value1 THEN result1WHEN value2 THEN result2...ELSE result …...
自己的碎碎念集合
自己的碎碎念集合 2023-09-07 c++叠加三目运算符闰年计算法2023-08-13 一个小题目 A+B problem一、问题及解答关碍总结2023-07-26 C的2至36进制转换函数一、itoa()函数的示例代码总结2023-07-19 平面坐标下判断三角形以及输出周长和面积一. 基本知识总结2023-06-25 达芬奇去除白…...
暂定名「码道功成:Coder启示录」
听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,现任研发部门 CTO 。荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计…...
Apache HTTPD (CVE-2017-15715)换行解析漏洞复现
Apache HTTPD 换行解析漏洞 CVE-2017-15715漏洞简介 组件版本漏洞名称 Apache HTTPD 换行解析漏洞(CVE-2017-15715) 漏洞描述 Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞&…...
Spring Boot集成JasperReport生成文档
由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲染生成PDF文档。 一、使用Ireport designer 5.6设计模板 ireport的使用由于时间关系不便多…...
02-Tomcat打破双亲委派机制
上一篇:01-从JDK源码级别剖析JVM类加载机制 Tomcat 如果使用默认的双亲委派类加载机制行不行? 我们思考一下:Tomcat是个web容器, 那么它要解决什么问题: 一个web容器可能需要部署两个应用程序,不同的应用…...
怎么理解flink的异步检查点机制
背景 flink的checkpoint监控页面那里有两个指标Sync Duration 和Async Duration,一个是开始进行同步checkpoint所需的时间,一个是异步checkpoint过程所需的时间,你是否也有过疑惑,是否只是同步过程中的时间才会阻塞正常的数据处理…...
SpringMVC <url-pattern/>解读
1. < url-pattern/>的值 (1).使用拓展名的方式,语法*.xxx,xxx是自定义的拓展名,常用的方式*.do,*.action,不能使用*.jsp. (2).使用斜杠 "/"当项目中使用了 / ,他会替代tomcat中的default。导致所有的…...
大学毕业设计的益处:培养实践能力、深入专业领域、展示自信与建立联系
大学生做毕业设计有许多好处,以下是一些主要的原因和好处: 实践应用能力:毕业设计通常需要学生将所学的知识和技能应用到一个具体的项目中,这有助于他们将理论知识转化为实际应用能力。 独立思考和解决问题:毕业设计要…...
ChatGPT:概述Vue.js中data函数初始化和created钩子函数调用的顺序和问题解决方法
ChatGPT:概述Vue.js中data函数初始化和created钩子函数调用的顺序和问题解决方法 我将输入一段Vue代码,请你记住: created() {console.log(this.queryInfo)this.getClueList();},data() {return {allQueryInfo: {str: ,//线索标题查询信息},/…...
SpringBoot【基础篇】
一、快速上手 按照要求,左侧选择web,然后在中间选择Spring Web即可,选完右侧就出现了新的内容项,这就表示勾选成功了 关注:此处选择的SpringBoot的版本使用默认的就可以了,需要说一点,SpringBo…...
Vuex - state 状态(获取和使用共享数据)
文章目录 一、state是什么?二、state状态的作用三、如何使用store数据呢?使用数据的两种方式:1. 通过store 直接访问2. 通过辅助函数访问(简化) 一、state是什么? state是状态(数据) , 类似于v…...
tcp连接+套接字编程
tcp头部 tcp端口号 TCP的连接是需要四个要素确定唯一一个连接:(源IP,源端口号) (目地IP,目的端口号) 所以TCP首部预留了两个16位作为端口号的存储,而IP地址由上一层IP协议负责传递 源…...
OpenCV(三十四):轮廓外接最大、最小矩形和多边形拟合
目录 1.轮廓外接最大矩形boundingRect() 2.轮廓外接最小矩形minAreaRect() 3.轮廓外接多边形approxPolyDP() 1.轮廓外接最大矩形boundingRect() Rect cv::boundingRect ( InputArray array ) array:输入的灰度图像或者2D点集,数据类型为vector<Point>或者M…...
Kafka3.0.0版本——消费者(offset的默认维护位置)
目录 一、offset的默认维护位置1.1、offset的默认维护位置概述1.2、offset的默认维护位置图解 二、消费者offset的案例 一、offset的默认维护位置 1.1、offset的默认维护位置概述 Kafka0.9版本之前,consumer默认将offset保存在Zookeeper中。从Kafka0.9版本开始&am…...
Wireshark技巧[监听串口包]
监听串口包 本文摘录于:https://blog.csdn.net/qq_20405005/article/details/79652927只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 这里要保证安装了USBpcap: 打开USBpcap后一半都要输入过滤条件,否则USB太多数据了,比如…...
安全运营中心即服务提供商评估
如果组织当前没有自己的安全运营中心(SOC),那么可能需要考虑如何在不从头开始构建的情况下获得安全运营中心(SOC)。自己构建安全运营中心(SOC)的费用可能会非常昂贵,考虑到工作人员全天候运营的配置成本,就更是如此。在过去几年中,…...
算法通关村第十三关——幂运算问题解析
前言 幂运算为常见的数学运算,形式为 a b a^b ab ,其中a为底数,b为指数, 力扣中,幂运算相关的问题主要是判断一个数是不是特定正整数的整数次幂,以及快速幂的处理。 1.求2的幂 力扣231题,给…...
Python 之使用Numpy库来加载Numpy(.npy)文件并检查其内容
文章目录 总的介绍data.dtypedata.shapedata.ndimdata.size 总的介绍 要判断一个Numpy(.npy)文件的数据集类型,你可以使用Python中的Numpy库来加载该文件并检查其内容。以下是一些常见的步骤: 导入Numpy库: 首先&…...
C#学习系列之UDP同端口收发问题
C#学习系列之UDP同端口收发问题 前言解决办法关于JoinMulticastGroup总结 前言 想测试自己的程序问题,建立了两个UDP程序,一个往端口中接到数就传出去,另一个从这个端口接数据来解析。 出现的问题是 每次打开端口,另一个程序就无…...
SpringMVC之文件上传下载以及jrebel的使用
目录 一、文件上传 1.1 导入依赖 1.2 配置文件上传解析器 1.3 配置服务器存放文件地址 1.3.1 点击编辑Configurations 1.3.2 将项目部署至tomcat服务器上 1.3.3 配置相对路径 1.4 导入PropertiesUtil工具类 1.5 编写resource.properties 1.6 添加sql 1.7 编写PageCo…...
基于Fomantic UI Web构建 个人导航站点网站源码 网站技术导航源码
BYR-Navi-master好看有个性的网站技术导航源码 该网站基于Fomantic UI Web框架构建,整个项目的设计和构建具有高度的配置和定制灵活性。 整体风格比较适合个人导航站点使用 搜索框输入关键词后,点击上方搜索引擎图标可跳转打开对应搜索引擎搜索结果&am…...
DRF02-请求响应与路由
文章目录 1. http请求响应1.1. 请求与响应1.1.1 Request1.1.1.1 常用属性1).data2).query_params3)request._request基本使用1.1.2 Response1.1.2.1 构造方式1.1.2.2 response对象的属性1).data2).status_code3).content1.1.2.3 状态码1)信息告知 - 1xx2)成功 - 2xx3)…...
http直接调用paddlepaddle实现文字转语音,语音转文字
由于环境问题,折腾好久,记录下来,安装后使用还是很方便的 记录下来,方便自己,方便大家 1.安装 参考官方文档: mirrors / paddlepaddle / paddlespeech GitCode 2.启动server 参考官方文档: mirrors / paddlepaddle / paddlespeech GitCode 3.直接调用 参考官方文档: htt…...
9. xaml ComboBox控件
1.运行图像 2.运行源码 a.Xaml源码 <Grid Name="Grid1"><!--IsDropDownOpen="True" 默认就是打开的--><ComboBox x:Name="co...
【后量子密码】CRYSTALS-KYBER 算法(二):密钥封装 KEM(附源码分析)
一、前言 Kyber 算法是一种满足 IND-CCA2 安全的密钥封装机制(key-encapsulation mechanism,KEM),其安全性依赖于MLWE 问题的困难性。Kyber 算法构建采用了两阶段的方法:首先引入了一种IND-CPA 安全的公钥加密方案,用于加密长度为32字节的消息,称之为Kyber.CPAPKE;然后…...
什么是原⼦操作?在 JUC 中有哪些原⼦类?
原子操作是一种在多线程环境下不会被中断的操作,它要么完全执行,要么完全不执行,不会出现中间状态。原子操作通常是对共享数据的操作,确保多个线程同时访问共享数据时不会导致数据不一致或损坏。 在Java中,java.util.concurrent 包提供了一组原子类,用于执行原子操作。以…...
做58类网站需要多少钱/品牌整合营销传播
每日一言:九十九次的理论不如一次的行动来的实际。 欢迎一起讨论和学习,QQ:732258496 QQ群:478720016 Android热更新Tinker 多渠道打包 加固的流程详解 热更新注意(经测试总结出) 1.protectedApp tr…...
徐州做公司网站多少钱/百度官方优化指南
目录错误场景解决办法错误 ./components/HelloWorld.vue in ./node_modules/cache-loader/dist/cjs.js??ref–0-0!./node_modules/vue-loader-v16/dist??ref–0-1!./src/App.vue?vue&typescript&langjs 场景 因为安装element-plus后把app.vue里的代码替换了&#…...
福田做商城网站建设哪家服务周到/推广找客户平台
本文与前文是有关联的,之前的两篇文章客官可以抬腿出门右转 导读,ELK 之前端,ELK 之分布式发#前端和消息队列搞定之后,我们需要安装数据采集工具filebeats和数据过滤机运输工具Logstash,一般情况我们都使用filebeats 用…...
宁夏做网站建设公司/网站seo方案策划书
背景 EntityFramework 中 DbSet.Add 方法不会导致立即执行 insert 语句,这在长事务中非常有用,不过多数用例都是短事务的,为何我需要一个立即执行 insert 语句的方法呢?本文就是在思考这个问题。 先看一个代码 代码 1 using Syste…...
街道办的网站由谁做的/重庆网站到首页排名
交换机口令设置:switch>enable ;进入特权模式switch#config terminal ;进入全局配置模式switch(config)#hostname ;设置交换机主机名switch(config)#enable secret xxx ;设置特权加密口令为xxxswitch(config)#enable password xxx ;设置特权非密口令为xxxswitch(config)#lin…...
有一个网站专门做民宿/知乎关键词排名优化工具
心血来潮做了老师布置的一道ACM题,思前想后,加之老师的引导才弄出结果来,不过做完之后发现一个老结论——问题都是在解决之前很困难,解决之后你会发现,喔~原来是这样....现在下笔记之,只为了提高一下自己的语言即逻辑组…...