UVA12299 RMQ with Shifts

简要题意

你需要维护一个长为 \(n\) 的序列 \(a\),支持以下操作:

  • shift(i1,i2,...,ik) 对于 \(1 \leq p \leq k\),将 \(a_{i_p}\) 赋值为 \(a_{i_{(p \bmod k) + 1}}\)
  • query(l,r) 查询区间 \([l,r]\) 的最小值。

\(1 \leq n \leq 10^5,1 \leq q \leq 2.5\times 10^5\),输入的操作长度不超过 \(30\)

思路

输入操作长度不超过 \(30\) 这个条件很关键。它告诉我们,最多有 \(30\) 个元素会被修改,而 \(30\) 很小,完全可以逐个单点修改来实现。具体做法是,储存一下 \(v=a_{i_1}\),然后逐个按题面修改,最后将 \(a_{i_k}\) 修改为 \(v\) 即可。

于是这道题可以用一个支持单点修改,区间最小值的数据结构解决,恰好,线段树就可以胜任这两个操作。

时间复杂度 \(O(n+q\log n)\),完全可以通过本题。

最后讲一讲输入,貌似题解里没有我这么输入的。

我的输入方法是:每个操作用 std::cin 读入一个字符串,然后从第 \(6\) 个字符(下标从 \(0\) 开始,这样子会跳过前面的引导字符串和一个左括号)。然后每遇到一个字符,进行分类讨论:

  • 如果是右括号,直接忽略。
  • 如果是逗号,则将计数器加 \(1\),下一次存储时会存储到右边的位置中。
  • 如果是数字,将计数器所对应的数据乘上 \(10\) 加上这个字符表示的数字。

然后查询操作就是前两个数据,修改操作就是读进来的全部数据。

这个写法个人觉得比其他写法更简便、好懂,也不易写错。

代码

#include <bits/stdc++.h>
#define ls (i<<1)
#define rs (i<<1|1)
#define mid ((l+r)>>1)
using namespace std;

int n,q;
const int N = 100005;
int mint[N<<2];

void pushup(int i){
    mint[i]=min(mint[ls],mint[rs]);
}

void build(int i,int l,int r){
    if(l==r){
        cin>>mint[i];
        return;
    }
    build(ls,l,mid);
    build(rs,mid+1,r);
    pushup(i);
}

void update(int p,int v,int i,int l,int r){
    if(l==r){
        mint[i]=v;return;
    }
    if(p<=mid) update(p,v,ls,l,mid);
    else update(p,v,rs,mid+1,r);
    pushup(i);
}

int query(int ql,int qr,int i,int l,int r){
    if(ql<=l&&r<=qr) return mint[i];
    int ans=INT_MAX;
    if(ql<=mid) ans=min(ans, query(ql,qr,ls,l,mid));
    if(qr>mid) ans=min(ans, query(ql,qr,rs,mid+1,r));
    return ans;
}

void shift(int *ids,int size){
    int first = query(ids[0], ids[0], 1, 1, n);
    for(int i=0;i<size-1;i++){
        update(ids[i], query(ids[i+1], ids[i+1], 1, 1, n), 1, 1, n);
    }
    update(ids[size-1], first, 1, 1, n);
}

signed main(){
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    cin>>n>>q;
    build(1,1,n);
    while(q--){
        string str;
        cin>>str;
        int arr[30],tot=0;
        memset(arr,0,sizeof(arr));
        for(int i=6;i<str.size();i++){
            if(str[i] == ')') continue;
            if(str[i] == ',') tot++;
            else arr[tot]=arr[tot]*10+(str[i]-'0');
        }
        if(str[0] == 'q') cout<<query(arr[0], arr[1], 1,1, n)<<'\n';
        else {
            shift(arr, tot+1);
        }
    }
    return 0;
}
如果文章有问题,静待斧正,建议向我发送洛谷私信并指出博文地址 http://www.cnblogs.com/zheyuanxie/p/uva12299.html!
本文转载于网络 如有侵权请联系删除

相关文章

  • 实战分页机制实现 -- 通过实际内存大小动态调整页表个数

    1.引言上一篇文章中,我们详细讲解了32位保护模式下的分页机制,最终,我们将4GB的内存区域划分为了连续的1023个分页,页表保存在4MB的空间中。 详解操作系统分页机制与实战 但是我们的内存大小到底是多少呢?如果内存总共只要8MB,那上面的分页程序执行完,光是页表就占用了4MB,空间已经所剩无几,可见,按需使用内存,合理规划页表的大小是非常重要的,而这一切的前提是必须要搞清楚内存总共有多少。 本文我们就来通过一个程序获取计算机的内存信息。2.通过BIOS中断获取内存信息我们曾经通过BIOS的10H硬件中断实现向显示器输出一行文字。 计算机是如何启动的?如何制作自己的操作系统通过15H号硬件终端,我们可以获取系统多个不同方面的信息,这其中就包括内存信息的获取。2.1.原理用于获取内存信息的10H中断将内存信息拼装为一个20个字节的数据结构—地址范围描述符结构,写入到指定的内存中。 每一次中断生成一个描述符结构,用来表示一段连续可用的内存,经过若干次中断调用,即可获取整个内存中若干段的可用内存。2.2.地址范围描述符ARDSARDS是AddressRangeDescriptorStru

  • 改变对COVID-19大流行期间远程工作的看法:使用来自日本的面板数据的证据(E GE)

    COVID-19导致日本学校关闭,以应对这一流行病。在紧急状态下,除了学校关闭外,课后护理没有得到足够的供应。我们通过互联网调查独立收集个人层面数据,构建从3月中旬到2020年6月中旬的简短面板数据,涵盖紧急状态前后。我们分析了学龄儿童的存在如何影响他们的父母对在家工作的看法。在使用固定效应模型对各种因素进行控制后,我们发现,在父母是工人的情况下,儿童在小学(1),父母愿意促进在家工作。如果孩子在初中(2),父母的观点几乎不受影响。(3)令人惊讶的是,儿童为小学生的工人最有可能在学校重新开学后支持促进在家工作。由于学校关闭和缺乏课后照顾,父母需要在家工作,这一经验促使有年幼子女的工人继续这样做,以改善工作-生活平衡,即使学校重新开学。原文标题:ChangingviewsaboutremoteworkingduringtheCOVID-19pandemic:EvidenceusingpaneldatafromJapan作者:EijiYamamura,YoshiroTsutsui原文内容:COVID-19hasledtoschoolclosuresinJapantocopewiththep

  • 如何配置关联Python 解释器 Anaconda的教程(图解)

    首先先安装好我们的Python这里就不多介绍了1.打开python.exe:点击File下的小扳手图标Settings…2.打开设置界面:我们点击Project这一栏下的ProjectInterpreter之后我们点击红色小方框的小箭头3.选择环境变量:我们选择已有的两个环境变量中的其中一个Python3.7点击下方的Apply等他加载成功后我们点击OK就完成了。4.选择环境变量:另一种情况我们发现下拉列表中没有可选择的环境变量时,点击右边的小齿轮,然后点击Add….进入下面的界面后我们选中第一栏下的Existingenvironment(新建一个环境)然后点击…进行添加路径路径为:anaconda的安装路径下的Tools\python.exe点击OK我们继续点击Apply,OK这样就成功啦!5.最后一步测试:我们简单的执行一条语句:print('helloword!') helloword!复制成功输出!环境配置好啦~~到此这篇关于如何配置关联Python解释器Anaconda的教程(图解)的文章就介绍到这了,更多相关Python解释器Anaconda内容请搜索

  • Spring Web MVC 拦截器

    1.1简介1.1.1概述  SpringWebMVC的拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(InterceptorChain)。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实现。 1.1.2拦截器(interceptor)和过滤器(filter)区别区别过滤器拦截器使用范围Servlet中的一部分,任何JavaWeb工程都可以使用SpringWebMVC框架独有拦截范围配置了/全部拦截只会拦截访问控制器方法的请求,*.js等不会拦截1.2简单示例1.2.1自定义拦截器/** *CreatedwithIntelliJIDEA. * *@authorDemo_Null *@date2020/8/27 *@description自定义拦截器 */ //实现HandlerInterceptor并重写需要的方法 publicclassMyInterceptorimplementsHandlerInterceptor{ @Override

  • Apollo 源码解析 —— Portal 认证与授权(一)之认证

    1.概述老艿艿:本系列假定胖友已经阅读过《Apollo官方wiki文档》,特别是《Portal实现用户登录功能》。本文分享Portal的认证与授权,侧重在认证部分。在《Portal实现用户登录功能》文档的开头:Apollo是配置管理系统,会提供权限管理(Authorization),理论上是不负责用户登录认证功能的实现(Authentication)。 所以Apollo定义了一些SPI用来解耦,Apollo接入登录的关键就是实现这些SPI。和我们理解的JDKSPI不同,Apollo是基于SpringProfile的特性,配合上SpringJavaConfiguration实现了类似SPI的功能。对于大多数人,我们可能比较熟悉的是,基于不同的Profile加载不同环境的yaml或properties配置文件。所以,当笔者看到这样的玩法,也是眼前一亮。在apollo-portal项目中,spi包下,我们可以看到认证相关的配置与实现,如下图所示:绿框:接口。紫框:实现。红框:配置接口对应的实现。2.AuthConfigurationcom.ctrip.framework.apollo.por

  • 1464: [蓝桥杯2019初赛]数的分解

    题目把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18和1001+1000+18被视为同一种。思路最简单的思路就是暴力枚举法,也是一道填空题,所以代码超时也没关系,提交答案即可。按照题目要求进行判断,由于不能出现重复,a=b,a=c,b=c,同时也要保证a,b,c三个的位置互换可能会有六种情况。因此最简单的思路就是第一次循环从1-n,第二次循环从上一次循环+1开始到n,第三次是第二次+1到n,保证了位置上的无重复。当然你也可以全部列出来然后统一处以6,至于为什么除6,可以考虑一下概率论的知识,三个位置三个球一共几种摆法,也就是3×2×1=6。代码//1464:[蓝桥杯2019初赛]数的分解 #include<iostream> usingnamespacestd; booljudge(intnum){ while(num){ inttmp=num%10; if(tmp==2||tmp==4){ returntrue; } num/=10; } ret

  • 看完python这段爬虫代码,java流

    哈哈,其实很简单,寥寥几行代码网页爬一部小说,不卖关子,立刻开始。首先安装所需的包,requests,BeautifulSoup4控制台执行pipinstall requestspipinstall BeautifulSoup4如果不能正确安装,请检查你的环境变量,至于环境变量配置,在这里不再赘述,相关文章有很多。两个包的安装命令都结束后,输入piplist可以看到,两个包都成功安装了。好的,我们立刻开始编写代码。我们的目标是抓取这个链接下所有小说的章节 https://book.qidian.com/info/1013646681#Catalog我们访问页面,用chrome调试工具查看元素,查看各章节的html属性。我们发现所有章节父元素是<ulclass="cf">这个元素,章节的链接以及标题,在子<li>下的<a>标签内。那我们第一步要做的事,就是要提取所有章节的链接。'用于进行网络请求' importrequests chapter=requests.get("https://book.q

  • 面试挂在了 LRU 缓存算法设计上

    好吧,有人可能觉得我标题党了,但我想告诉你们的是,前阵子面试确实挂在了RLU缓存算法的设计上了。当时做题的时候,自己想的太多了,感觉设计一个LRU(Leastrecentlyused)缓存算法,不会这么简单啊,于是理解错了题意(我也是服了,还能理解成这样,,,,),自己一波操作写了好多代码,后来卡住了,再去仔细看题,发现自己应该是理解错了,就是这么简单,设计一个LRU缓存算法。不过这时时间就很紧了,按道理如果你真的对这个算法很熟,十分钟就能写出来了,但是,自己虽然理解LRU缓存算法的思想,也知道具体步骤,但之前却从来没有去动手写过,导致在写的时候,非常不熟练,也就是说,你感觉自己会和你能够用代码完美着写出来是完全不是一回事。所以在此提醒各位,如果可以,一定要自己用代码实现一遍自己自以为会的东西。千万不要觉得自己理解了思想,就不用去写代码了,独自撸一遍代码,才是真的理解了。今天我带大家用代码来实现一遍LRU缓存算法,以后你在遇到这类型的题,保证你完美秒杀它。题目描述设计并实现最不经常使用(LFU)缓存的数据结构。它应该支持以下操作:get和put。get(key)-如果键存在于缓存中,则

  • 极简风格的演讲型幻灯片设计

    极简风格(Minimalism),就是将设计省略到最小限度,只留下真正引人注意的内容,这样一种表现风格。通过极简风格,可以将设计的意图与目的更准确的传达出来。极简风格看起来很简单,但完成作品也是需要大量的练习和长时间的制作的。为什么演讲型幻灯片应做成极简风格的?极简风格,似乎就是天然为演讲型幻灯片所生的——它简单、明晰、有着清晰的视觉层次、核心细节拥有高关注度……现在,我们来换位思考:假设你是听众,你是会选择一张堆满文字的繁杂的幻灯片,还是一张上面只是写了关键字的简洁的幻灯片?我相信,大多数人会选择后者。当页面信息量过大时,观众可能会分散注意力,低头玩手机,甚至……离席而去。毕竟,在演讲时,你的目的就是让听众聆听并认同你的思想啊。 我非常喜欢的一个纪录片:《柴静调查:穹顶之下》(本文之后的配图,大多数都选自这里),大家有时间可以看一看。我们会观察到:《穹顶之下》所用的幻灯片,每一页,都没有过多的文字,90%的文字都是口述出来的,而不是照着大屏幕读。绝大部分人在演讲的同时展示出来的幻灯片都是“阅读型”幻灯片,这是最严重的错误。而这对观众来讲,也是很痛苦的——有些演讲者要完全读出幻灯片

  • 中国通信领域路上又出现新的"绊脚石",联想"出卖"自己人!

    这可能是中国最像外企的一家中国企业了。镁客注 毋庸置疑,5G时代正在快速走来,5G标准的竞争也日趋激烈。包括高通的LDPC在内,华为的Polarcode、法国的Turbo2.0等都是当前国际上排名领先的5G信道数据码。然而,在美国的5G信道数据码会议上,在所有中国国内厂商甚至中国台湾企业都投票把短码投给华为的情况下,联想竟带着旗下的摩托罗拉“临阵倒戈”投票高通,导致华为以微弱的劣势败阵,不仅长码没有拿下,连本应稳拿的短码也被高通夺去。本文从5G信道数据码会议开始,详细还原了会议投票过程,并对当前国际5G信道数据码格局进行解析。这一次,我们没有输在实力上,而是输在了自己人手里。本文转自北美留学生日报;作者:Dan;作者公众号:北美留学生日报(ID:collegedaily)正文:还记得前一段时间美国商务部宣布禁止美国企业向中兴通讯销售元器件一事吗?这件事,把我们从梦中叫醒了。我们和美国之间的差距,依旧存在,甚至在某些高新科技领域,差距大到美国可以捏断中国的产业发展。而最近在决定5G信道数据码的美国会议上,中国企业再度品尝到了惜败美企的滋味。但这次我们并非输在实力上,更不是技术上。非常遗憾

  • 苹果审核被拒 2.3.10

    开篇 最近在工作的空余研究Swift,在性质最高的时候,苹果审核团队被拒邮件让人感觉到很蛋疼,说我违反了2.3.10,今天来看看他的2.3.10是个什么鬼,之前怎么么有事情正题我们先看看苹果的邮件上则么说Wenoticedthatyourapporitsmetadataincludesirrelevantthird-party>platforminformation.Specifically。 Referencingthird-partyplatformsinyourapporitsmetadataisnot>permittedontheAppStoreunlessthereisspecificinteractive>functionality. We'veattachedscreenshot(s)foryourreference. Pleaseremoveallinstancesofthisinformationfromyourappandits>metadata,includingtheAppDescription,What'snewin

  • ThinkingGameCEO吕承通:大数据与人工智能在游戏行业的应用(内附视频&PPT)

    数据猿导读近一两年来关于大数据和人工智能的话题越来越多,但是游戏似乎和大数据人工智能没有什么关系。其实不然,接下来我就给大家揭开这个答案。作者|吕承通伴随应用商店和社交网络的兴起,游戏市场规模空前扩大,大数据和人工智能对于游戏运营特别是延长产品寿命的积极作用越发明显。但什么样的数据有价值?如何更有效的利用数据的价值?以及人工智能具体可以将游戏行业颠覆到何种程度?都逐渐成为游戏行业共同关注的问题。3月23日,由数据猿联合上海大数据联盟、上海超级计算中心以及ThinkingGame共同举办了“魔方大数据(14):数据智能助力游戏产业升级”活动,携手产业内众大咖,共同探讨数据智能如何助力游戏产业升级。—视频版—视频内容注:获取演讲嘉宾干货PPT请后台回复关键词“吕承通”即可—文字版—以下是由数据猿精编整理发布的ThinkingGameCEO吕承通的精彩分享:分享长度为3400字,建议阅读7分钟本次活动我要演讲的主题是“大数据与人工智能在游戏行业的应用”。近一两年来关于大数据和人工智能的话题越来越多,其中自动驾驶、人脸识别、语音转换文字工具这些话题让人们觉得和人工智能非常贴近,也对人工智能产生

  • 《以太坊白皮书》笔记(1)——比特币介绍

    #1StateTransactionSystemState在Bitcoin当中,"state"代表了所有被挖出且没有被消费的货币的集合(UTXO-"unspenttransactionoutputs"),并且每一个货币都有面值和持有者。Bitcoin交易:有1个或多个输入,包含现有的UTXO和由持有者地址相关的私钥签名有1个或多个输出,包含一个新的UTXO并更新状态StateTransactionFunction输入当前状态和一笔交易,输出新的状态或者ERRORAPPLY(S,TX)->S'orERRORForeachinputinTX:IfthereferencedUTXOisnotinS,returnanerror.IftheprovidedsignaturedoesnotmatchtheowneroftheUTXO,returnanerror.IfthesumofthedenominationsofallinputUTXOislessthanthesumofthedenominationsofalloutputUTXO,re

  • 腾讯云TDSQLMySQL版续费分布式数据库实例分布式数据库

    1.接口描述接口请求域名:dcdb.tencentcloudapi.com。 本接口(RenewDCDBInstance)用于续费分布式数据库实例。 默认接口请求频率限制:20次/秒。 APIExplorer提供了在线调用、签名验证、SDK代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成SDK调用示例。 2.输入参数以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。 参数名称 必选 类型 描述 Action 是 String 公共参数,本接口取值:RenewDCDBInstance。 Version 是 String 公共参数,本接口取值:2018-04-11。 Region 是 String 公共参数,详见产品支持的地域列表。 InstanceId 是 String 待续费的实例ID。形如:dcdbt-ow728lmc,可以通过DescribeDCDBInstances查询实例详情获得。 Period 是 Integer 续费时长,单位:月。 AutoVoucher 否

  • 【点点点】JsonSchema的使用

    1、在线使用验证:http://json-schema-validator.herokuapp.com/,如下验证: Schema: { "$schema":"http://json-schema.org/draft-04/schema#", "type":"object", "properties":{ "status":{ "type":"integer" }, "msg":{ "type":"string" }, "sign":{ "type":"string" }, "data":{ "type":"object", "properties":{ "deviceId":{ "type":"string" }, "secret":{ "type":"string" } }, "required":[ "deviceId", "secret" ] } }, "required":["status","msg","sign","data"] }复制   验证的数据Data: { "data":{ "deviceId":"881e576789c87da7db02a968

  • 调参侠的末日? Auto-Keras 自动搜索深度学习模型的网络架构和超参数

    Auto-Keras是一个开源的自动机器学习库。Auto-Keras的终极目标是允许所有领域的只需要很少的数据科学或者机器学习背景的专家都可以很容易的使用深度学习。Auto-Keras提供了一系列函数来自动搜索深度学习模型的网络和超参数。 安装: pipinstallautokeras 样例: importautokerasasak clf=ak.ImageClassifier() clf.fit(x_train,y_train) results=clf.predict(x_test) 官方网站:http://autokeras.com/ 开源项目:https://github.com/jhfjhfj1/autokeras Auto-Kerasisanopensourcesoftwarelibraryforautomatedmachinelearning(AutoML).TheultimategoalofAutoMListoallowdomainexpertswithlimiteddatascienceormachinelearningbackgroundeasilyaccessibl

  • CrashCourse 笔记

    监督学习(supervisedlearning):有一个监督者来判断学习结果是否正确,即类似在样本训练中给所有的样本加上标签label,如果判断结果和标签相符合就不作改变,否则改变相应的参数。 非监督学习:显然是无对错信息的一种学习过程,在这个过程中机器自己学会对不同的输入进行聚类,没有标签。 强化学习:(以后再写) 神经网络介绍:   现在几乎所有事物我们都可以进行量化用数字来表示,比如一个图片(RGB三通道),它的每个像素有三个数值代表红绿蓝三种颜色的深浅,许多这样的像素按照对应的顺序就构成了一张图片;声音是一个随时间变化的波,我们可以检测到其振幅和音调等,在时间上可以选取每个时刻都用数字刻画对应的声音;判断一个人的健康状况我们可以通过体检单上的各种检测数据来判断,医生也是要根据图像(ct,X-ray)和数据(体检单,阳性阴性血压血糖等)来判断一个人是否有相关的疾病;可以看到好多事物的属性都可以用数据量化来表示我们经常遇到的这些问题也可以用数据去描述。   NeuralNetwork示意小图:            输入层,隐藏层,

  • CF1482E Skyline Photo

    Description AliceisvisitingNewYorkCity.Tomakethetripfun,AlicewilltakephotosofthecityskylineandgivethesetofphotosasapresenttoBob.However,shewantstofindthesetofphotoswithmaximumbeautyandsheneedsyourhelp. Thereare$n$buildingsinthecity,the$i$-thofthemhaspositiveheight$h_i$.All$n$buildingheightsinthecityaredifferent.Inaddition,eachbuildinghasabeautyvalue$b_i$.Notethatbeautycanbepositiveornegative,asthereareuglybuildingsinthecitytoo. Asetofphotosconsistsofoneormorephotosofthebuildingsintheskyline.Each

  • MobaXterm连接虚拟机要先安装ssh服务器

    虚拟机的上网方式的选择一般是VMnet8 step1.服务器安装sshserver Ubuntu系统示例 sudoapt-getupdate sudoapt-getinstallopenssh-server sudoservicesshrestart 复制 step2.打开ssh服务端配置,开启root用户密码登录验证 sudogedit/etc/ssh/sshd_config 输入并保存 PermitRootLoginyes PasswordAuthenticationyes 复制 step3.重启一下ssh服务 sudoservicesshrestart /etc/init.d/sshrestart 复制 step4.给root用户设置非随机密码 sudopasswd 复制 step5.验证root用户密码 suroot su命令切换回你的普通用户 su普通用户 复制 step6.安装ifconfig并查看服务器IP CentOS系统 yuminstallnet-tools.x86_64 ifconfig 复制 Ubuntu系统 sudoaptinstallnet-tools

  • java OutOfMemorry

    首先需要明确OOM并不一定会导致程序挂掉,导致服务不可用的是堆内存被耗尽,从而使得主线程直接退出,或者所有工作线程频繁因为OOM异常终止,java分配数组会直接消耗内存,一个对象引用会占用四个字节。 堆内存和栈内存耗尽都会导致OOM jvm管理的内存大致包括三种不同类型的内存区域:PermanentGenerationspace(永久保存区域)、Heapspace(堆区域)、JavaStacks(Java栈)。其中永久保存区域主要存放Class(类)和Meta的信息,Class第一次被Load的时候被放入PermGenspace区域,Class需要存储的内容主要包括方法和静态属性。堆区域用来存放Class的实例(即对象),对象需要存储的内容主要是非静态属性。每次用new创建一个对象实例后,对象实例存储在堆区域中,这部分空间也被jvm的垃圾回收机制管理。而Java栈跟大多数编程语言包括汇编语言的栈功能相似,主要基本类型变量以及方法的输入输出参数。Java程序的每个线程中都有一个独立的堆栈。容易发生内存溢出问题的内存空间包括:PermanentGenerationspace和Heapspa

  • chrome 浏览器自保留端口、安全端口有哪些?chrome不能访问某个端口的环境网址,但是其它的浏览器可以访问原因及解决办法。

    我最近搭了个环境,用的6666端口,然后发现一个奇怪的现象chrome怎么访问都显示没有这个环境,但是本地的ie浏览器就可以访问到,后来想起来,chrome浏览器有一些自保留端口,跳过这些端口就好了。 chrome浏览器自保留端口如下: 1---tcpmux 7---echo 9---discard 11---systat 13---daytime 15---netstat 17---qotd 19---chargen 20---ftpdata 21---ftpaccess 22---ssh 23---telnet 25---smtp 37---time 42---name 43---nicname 53---domain 77---priv-rjs 79---finger 87---ttylink 95---supdup 101---hostriame 102---iso-tsap 103---gppitnp 104---acr-nema 109---pop2 110---pop3 111---sunrpc 113---auth 115---sftp 117---uucp-pa

相关推荐

推荐阅读