第一百二十二章 全国青少年信息学奥林匹克竞赛(第1/1页)假装自己是学霸

    信息联赛是五大科里面最为特殊的一项。

    最最重要的原因。

    是因为校压根就没有开设计算机这门课程。

    虽然潜北中里也有着自己的“机房”,但是除了有时候需要生上填写信息之外,几乎从来都不对生们开放。

    不仅如此,其他几个科的竞赛的名称都是“国高中xx联赛”,“国中生xx竞赛”。

    信息的称却是“国青少年信息奥林匹克竞赛”。

    可能是因为信息更加的众,其中又分为NOI和NOIP,前者为正式竞赛,后者为普及组和拔高组。

    赛程里,又有一堆看起来就十分的麻烦西。

    如果不是因为强迫症,想要凑齐一个五大科能金牌,苏牧是真的懒得去看这些莫名其妙的规章制度。

    不过好在信息这些西要等今年下半年才会正式筹备,到时候再跟校专门负责的老师联系一波应该没什么大问题。

    暑假的话,稍微做做题,刷到三四级的地步应该就已经够用了。

    除了五大科竞赛之外。

    苏牧还打算试试国中生英语能力竞赛和每年一度的新概念作大赛。

    这些也都是年底才会正式出通知。

    对于苏牧来只能算是日程表的末端。

    还有一个比较重要的点就是世界影响力

    影响力面苏牧现在还处于一星,并没有具体的数值只有一个的进度条。

    看着进度条的样子,苏牧现在的一星也仅仅完成了不到1%的样子。

    关于这个面苏牧打算先从面还有视频面入手,成为一名作家或者成为一个up主。

    不仅可以获得一定的影响力,而且不定还能获得一定的酬劳。

    尤其是Dilidili这几年推出的激励计划,可是养活了相当一大批为爱发电的up主。

    而且,虽然影响力这边现在每个月只能提供一个技能点。

    但是升到后期绝对是一个长期获取技能点的途径。

    零零散散的记录着着些西。

    回过神来。

    苏牧愕然的发现自己的事情好像真的挺多的。

    虽然压力不是很大,都是些送技能点的竞赛。

    但是积累起来还是得花时间去磨炼。

    “还是先得把身体素质多点个两级。”

    苏牧默默的想到。

    “叮!您进入了五级图书馆,习所获得的所有积分增幅1%”

    “叮!您查看了信息题目,信息积分+1,当前积分1/1,等级:一级。”

    因为浙外语外贸大里有些生暑期需要在校里复习考研,所以图书馆会在暑期里的周一到周五的白天开放到晚上八点,周六周末闭馆。

    因为没有其他事情的束缚,苏牧现在的行动力变得很高。

    回到家后的第一个工作日,便开始了自己的图书馆之旅,他现在做的事情是要把信息这个科重头开始起。

    但是,才刚刚上手,他就觉得有些不适应。

    因为信息实在是太杂了。

    初赛考察通用和实用的计算机普及科知识,以笔试为主。

    复赛为程序设计,须在计算机上调试完成。

    而不论是计算机普及科知识还是程序设计,苏牧都得从头开始起。

    他现在手上的两书是在淘宝上购买的《信息奥赛一通·提高篇》和《信息奥赛之数一通C++版》

    “近些年来的信息竞赛试题,经常出现求一个问题的可行解或者最优解的题目,这类问题统称为最优化问题,贪心算法是求解这一类问题的常用法。”

    苏牧首先打开的是这《信息奥赛一通·提高篇》

    “最优化问题。”他摸了摸下巴,脑海中闪过了几种数里关于最优化的解决案。

    信息很多西身就是与数相通的,这让他的心境稍微稳了积分。

    但是,当他看到例题的时候,脑海中瞬间就出现了几个问号。

    题目1:在N行列的正整数矩阵中,要求从每行中选取一个数,使得选出的N个数的和最大。

    解析:题可以用贪心算法求解,选N次,每一次选出相应行中的最大值即可。

    苏牧:“”

    这种题目还需要解析??

    这不是理所当然的吗?

    她看向了第二个题目。

    题目:在一个N????的格阵中,每一个格子赋予一个数(即权值),规定每次移动时只能向上或者向右,现试找一条路劲,使其从左下角至右上角所经过的权值之和最大。

    解析:在这种情况下

    一步一步看下来。

    苏牧倒也没觉得有什么难的,只不过是一些取极值的问题。

    但是,当他翻到后面的经典习题和解析的时候,整个人都不好了。

    【经典习题】在8×8格的棋盘上,从任意指定格出发,为马寻找一条走遍棋盘每一格并且只经过一次的一条路径。

    解析:首先这是一个搜索问题,运用深度优先搜索进行求解,算法如下:

    ⒈输入初始位置坐标x,;

    ⒉步骤  :

    如果≈gt;  64输出一个解,返回上一步骤--

    (x,)←

    计算(x,)的八个位的子结点,选出那些可行的子结点

    循环遍历所有可行子结点,步骤++重复

    显然⑵是一个递归调用的过程,大致如下(C++程序解析):

    #define  N  8

    vid  dfs(int  x,int  ,int  unt)

    {

    int  i,tx,t;

    if(unt≈gt;N*N)

    {

    utput_slutin();//输出一个解

    return;

    }

    fr(i=;  i≈lt;8;  i++)

    {

    tx=hn[i]x;//hn[]保存八个位子结点

    t=hn[i];

    s[tx][t]=unt;

    dfs(tx,t,unt+1);//递归调用

    s[tx][t]=;

    }

    }

    这样做是完可行的,因为它输入的是部解。

    但是马遍历当8×8时解是非常之多,用天数字形容也不为过,这样一来我们的求解的过程就非常慢,并且出一个解的时间也会也非常慢。

    当我们在每个结点对其子结点进行选取的时候,优先选择‘出口最的进行搜索,‘出口的意思是在这些子结点中它们的可行子结点的个数,也就是‘孙子结点少的优先跳。

    如果优先选择出口多的子结点,那出口少的子结点就会来多,很可能出现‘死结点

    这样对下面的搜索纯粹是徒劳,这样就会浪费很多无用的时间。

    反过来如果每次都优先选择出口少的结点跳,那出口少的结点就会来少,这样跳成功的机会就更大一些。

    苏牧:“。。。。”

    他的脑海中再次缓缓的出现了一堆问号。

    完没想到居然会有这么大的跨。

    看着仅仅只有一个题,却是密密麻麻的解析,苏牧突然明白了为什么数奥赛参加的人那么多,信息奥赛参加的人却那么少。

    这西,确定是适合青少年做的??

    不会秃顶吗??

    PS:因为要开始上课了要准备的西挺多的,后面也会慢慢忙起来,所以更新时间偶尔会些变化,但是每天两更应该可以保持住

    PS:弱弱的求几张推荐票。