25小说网 通过搜索各大小说站为您自动抓取各类小说的最快更新供您阅读!

江寒按了一下电脑电源按钮,很快显示器上出现了NOILinux的启动界面。

这就必须“赞”一下了,往年都是用虚拟机进入Linux的,今年改成原生系统了。

这样一来,系统的启动和运行速度,起码要提高一倍以上。

实际上,有些省份目前还是Windows和虚拟机Linux并行,选手自行选择趁手的操作系统。

合江省这次竟然走在了全国前列,率先淘汰了大众熟悉的Windows……

足足等了三十多秒,终于进入了Linux桌面。

江寒先把桌面分辨率等环境参数,调整成了最顺手的设置。

然后按下【Alt+Ctrl+T】,调出终端,用“ls”命令查看了一下。

赛组委果然没有预先建立比赛文件夹,这样就只能自己动手了。

江寒按照监考教师下发的参赛说明,使用“mkdir”命令建立了一个文件夹,命名为【Jianghan】。

接下来,他又在终端中输入【vimtest.cpp】,启动了代码编辑器vim的IDE界面,然后按“I”键进入插入模式。

这样就可以键入代码了。

这次比赛仍然可以在c、c++、pascal三种程序设计语言中任选一款。

三种语言各有特点,c语言执行效率最高,pascal语法简单,但稍嫌刻板,好处是不容易犯低级错误,c++则更加适合复杂程序的设计。

江寒毫不犹豫地选择了最为熟悉的c++。

首先完成一个测试代码。

功能很简单,就是在标准的“helloworld”基础上,增加了一个从1加到100的循环程序,然后将结果输出到屏幕上。

江寒编辑完代码,稍微检查了一遍,排除了可能存在的语法错误,然后按“ESC”键,退出插入模式,再输入“WQ”存盘退出。

接下来,回到终端中,输入命令行指令:【g++test.cpp-otest】,回车。

这样,g++编译器就开始工作,将test.cpp编译成了可执行文件test。

编译过程中,如果有错误,就会提示出来。

但江寒这个测试程序十分简单,并没有犯任何小错误,一次就通过了编译。

接下来,就可以输入【.test】,来执行生成的可执行文件了。

稍微观察了一下,确认程序可以正常运行。

这样系统的检测和调整就初步完成。

接下来,进行一些进阶的设置。

江寒用【vim~.vimrc】命令,再次打开vim界面,并加载了配置文件vimrc。

然后修改了一下其中的几个参数,将vim编辑器的操作模式,调整成了最顺手的状态。

接下来,在自己的比赛文件夹中,创建两个文本文件:test.in和test.out。

再修改测试代码,为其增加文件输入输出功能,并添加对头文件的引用,使其能操作test.in和test.out。

再次调试正确后,就得到了一份c++模板代码。

一会儿比赛正式开始,只需要在模板的基础上,进行一些修改和填补就可以了。

这些都搞定之后,还剩下大约15分钟时间,比赛才能正式开始。

江寒在vim中随便输入了几个小程序段,快速排序、堆排序、二分查找……进行赛前热手,以提升手感。

8点20分,监考人员通知大家登陆ftp服务器,用公用账号和密码下载试题压缩包。

江寒只用了30秒,就把试题压缩包下载到了自己的桌面上,并解压到了一个文件夹中。

随后依次点开3道试题的说明文档,认真查看了起来。

只用了10分钟,他就将3道题都看完一遍,并理清了解题思路。

然后按照题目难度,排了个序。

巧的是,三道题的编号和难度系数一一对应。

当然这是对于他来说,换个人看,很可能觉得第2题才是最难的……

江寒在【Jianghan】文件夹里,创建了三个子文件夹,按照要求,分别命名为【vigenere】、【game】和【drive】,一会儿为各个题目编写的代码,就分别存放于对应的文件夹中。

江寒先看第一题:Vigenère密码。

这是一个密码学问题,加密规则很简单。

密钥k是一个字符串,K=K1K2K3……Kn,当明文M=M1M2M3……Mn时,加密后的密文为C=C1C2C3……Cn,Ci=Mi⊕Ki。

⊕是一个规则表,26行,26列,每一行代表一种字母替换方式,第一行从A到Z顺序排列,第i+1行是第i行循环左移1个字符得到。

⊕运算不区分大小写,加密结果套用明文的大小写格式。

当M的长度大于K的长度时,重复使用K。

问题:给出密钥和密文,求原本的明文。

如果让江寒给这道题的难度评级,大约只肯给出1星。

这么简单的题目,约等于白给。

解题思路十分明确,找出加密规则⊕的数学描述,然后使用⊕的逆运算,代入密钥K和密文C,求出明文M。

如果实在不想麻烦,也可以将规则表建立成一个字符数组,然后反向查表。

可以说,只要认真训练过的选手,这道题没理由会丢分。

江寒迅速在草稿纸上,将流程图画了出来,然后编写C++代码。

5分钟搞定代码,然后在test.in中编制了10组测试数据,一一代入进行模拟计算。

输出的结果与纸笔计算十分吻合。

此题结束。

由于linux系统区分大小写,所以江寒在解题的过程中,除了题目中有规定的输出文本等,程序中使用的所有变量等等,一律使用小写字母。

接下来是第二题:国王游戏

N个大臣排成一队,国王站在队伍最前方,每个人左右手上,分别写有一个数字。

国王按照规则,赐予每个大臣一定数量的金币。

每个大臣所能得到的金币数,等于排在该大臣之前所有人左手数字之乘积,除以其右手的数字,结果向下取整。

问题是,如何调整大臣的顺序,才能让获得的金币最多的那个人,得到的金币尽可能的少。

注意,国王始终站在队伍最前方。

然后在输入数据说明中,有如下提示。

对于20%的数据,有1≤n≤10,a、b小于8且大于0;

对于40%的数据,有1≤n≤20,a、b小于8且大于0;

对于60%的数据,有1≤n≤100;且答案不超过10^9;

对于100%的数据,有1≤n≤1,000,a、b小于且大于0。

这道题的难度比第一题稍有提高,但也不算特别费劲。

此题的坑点在于,输入的数据n、a、b有可能较大,导致中间计算过程中,做乘除法的时候,数值会溢出。

使用通常的编程方式,只能通过前40%的数据校验,想得高分,就必须使用高精度编程。

解题思路就是穷举法。

针对给出的大臣数N,以及给出的N+1组左右手数字a、b,计算每种可能的站位情况所对应的金币最大值m,再求出集合M={m1,m2,m3,……mk}中的最小值。

由于N个大臣共有N!种站位,所以一旦N足够大,计算量将是非常恐怖的。

这道题一共10个检查点,每个检查点10分。

比赛对于程序运行时间的限制,是每个检查点不超过1秒。

对于运行空间的限制,是每个程序使用的内存,不得超过128兆。

无论在哪个检查点超时或者输出错误,都会扣掉该点的分值。

计算机打分的时候,一般会输入强弱不同的10组测试数据。

遇上小点的数字,比如本题中前20%的数据,只要程序没有逻辑错误,基本都能通过测试,拿到分数。

但当N稍微大一点的时候,使用暴力搜索算法,很可能会超过1s的时限。

所以,一定要找出规律,对输入的N组a、b进行预处理。

江寒在纸面上推演了一下,很快得到了一个猜想:当大臣们按a×b的积升序排序时,得到的序列就是最优的方案。

那么原本的暴力搜索程序,就可以改造一下了。

第一步,排序,求出最优方案时的队列,第二步,计算该情况下的M值。

毫无疑问,这个算法的效率远比暴力搜索更高,其运行时间取决于使用的排序算法的时间复杂度。

江寒先编制了一个最朴素的暴力搜索算法,测试了一下,验证程序没有逻辑错误后,另存了一份。

然后又按照改进后的思路,修改了一下代码,用快速排序整理队列,然后计算M值。

接下来就是比较好玩的东西了。

对拍。

25小说网推荐阅读:四合院:我何雨柱,誓不做吸血包四合院:农场主的美好生活四合院:这个住户恐怖如斯九龙至尊四合院:开局奖励神级厨艺重生1983:从夺回家产开始手握购物app:年代女配赢麻了穿成灾星小村姑,把全村都带歪了卷飞全家后我躺平了四合院:从返还技能开始美妇村情一天一个补偿包,反手打爆商业圈猛男诞生记四合院:开局拒绝一大爷换房婚礼现场,我和全家断绝关系!重生皇妃之不争宠武纵八荒我一个中介,会点风水很正常吧荒野求生之我的运气有亿点好山村最强小农民四合院:老子农场在国外重生1960,带着亿万食品仓库四合院:傻兄傻弟邢先生的冷面女友下乡知青:直接跟全家断绝关系赤胆特工四合院:我找傻柱报仇,全院慌了最强战神四合院:一人纵横万古神帝穿越古代:悍妇当家每月一首成名曲,打爆娱乐圈四合院:刚得系统,贾家逼我接济无敌升级王年代:随身农场被曝光了80年代剽悍土着女开局当替身,真千金在豪门杀疯了大佬媳妇甜又野救命!大佬她又开始反向许愿了!神魂丹帝人家采蘑菇,你采百年野山参全职中医万界交易,破产小老板的崛起之路邪御天娇携带亿万物资穿越七零四合院:我在四合院看我火爆全网四合院:这一家子惹不起年代1960:穿越南锣鼓巷,四合院:我真不想收拾你们60年代,饥荒年,赶山挖百年参
25小说网搜藏榜:斗罗大陆4终极斗罗(斗罗大陆IV终极斗罗)变身:武道女帝抗战:我觉醒杀星系统重生皇妃之不争宠武纵八荒我和女神的荒岛生涯重生八零从知青回城开始古玩街直播:你管这叫捡漏?求生综艺爆火后,我成了全民团宠年代:从大山开始仙门弃婿皇上,本宫很会撩校草恋上小丫头狂妻要翻天:沈爷,娶我步步沦陷重生1983,从卖小龙虾开始我一个中介,会点风水很正常吧[穿越]龙小六星际逆袭记女监狱男管教他比火光更耀眼盛少,又又又发狗粮了边种田边炒股,我是村里的首富穿成反派大佬的黑月光是谁劫走了我的初恋弃妃拒承欢本宫娇养的小奶狗被宠野了重生之农女太子妃非黑即白?不,我是商业巨擘!吾家淘妻不好惹爱妃别跑,本王要以身相许神级提示:开局举报行走的五十万手握超市穿年代,糙汉福妻美又飒直播盗墓游戏,呆妹周姐人麻了!舞动娱乐圈身价万亿,校花被我骗光生活费最强少年医圣绝色风华:腹黑召唤师逆天妖妃撩君心凤鸾九霄环佩锁情仇绝世神医开局麒麟肾,吓哭九个绝色娇妻重生从遇到小富婆开始重生七五:王牌娇妻有灵泉重生明星路为动画制作献上美好祝福趁兄弟憨萌,忽悠她做老婆相婿出山你好,我是人间执剑者纨绔江湖:重生公主惹邪王
25小说网最新小说:我有九千九百九十九万亿抚养金我的同学都是妖为爱让我放弃编制?我走你哭啥末代厂长穿越逆袭记穿成反派只想苟,不料女主成为我舔狗人生这几年祸害闯天下列车长的升迁之路我收捡垃圾成为顶级批发商夜幕无梦变身:被逼入死角的我不装了债务迷局都市异能:破晓之怒焰财阀的快乐你不懂转职:一柄魔刀千刃杀穿全校!女总裁倒追,前妻追夫火葬场了逆流港湾含冤入狱:陷害我的校花没想到我重生了重生60:分家后我把妻儿宠上天炮灰:女友前世是病娇小男娘重生九零年代,被迫再做资本大鳄高考落榜,听劝的我成了首富出山后,我的身份瞒不住了地幔战记开局获得141,成立巨神集团官场无痕:平民子弟逆袭世家名门重生:风流学霸,创造神话离婚吧爱人,妻子上综艺人设崩塌害我女儿我化为灭世僵王手握封神榜:一个能打的都没有华娱从2014开始村美人凡人修仙之童心问道重生1954,靠打猎发家致富!转职神级辅助,转身上报国家!年少如龙高武:开局抽中概念级异能老婆:我重生归来,许你灿烂人生民国从小混混开始无法无天诸天旅客迷糊先生野人岛上情未了穿越十年,影后要和我离婚请叫我洞虚观主!年代60从深山打猎开始逆袭都市异能传奇穿越文化断层世界,我直接杀疯了重生后,我在寝室卖灵兽万般皆是我,我为奇迹的化身御兽:我的契约不对劲