古门小说网
首页 > 其他 > 假装自己是个学霸笔趣阁 >

第一百二十二章 全国青少年信息学奥林匹克竞赛

章节目录

这种题目还需要解析??

这不是理所当然的吗?

他看向了第二个题目。

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

解析:在这种情况下.....

一步一步看下来。

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

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

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

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

1输入初始位置坐标x,y;

2步骤c:

如果c>64输出一个解,返回上一步骤c--

(x,y)←c

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

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

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

#definen8

voiddfs(intx,inty,intcount)

inti,tx,ty;

if(count>n*n)

output_solution;//输出一个解

return;

for(i=0;i<8;i++)

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

ty=hn[i].y;

s[tx][ty]=count;

dfs(tx,ty,count+1);//递归调用

s[tx][ty]=0;

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

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

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

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

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

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

.......

苏牧:“。。。。”

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

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

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

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

不会秃顶吗??

......

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

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

章节目录
书友推荐: 民国:家父闰土,先入北大后黄埔 带着英雄无敌穿越武侠世界 从装脏法开始民俗游戏 影视诸天:我来领悟大道 洪荒:十绝阵破,申公豹请我出山 深渊入侵:文明守望者 旁门真仙:从阴鬼通幽法开始 说好体验人生,仙子你怎么成真了 1983从供销社保卫处开始 落地须弥:旅行者没到,提前无敌 废墟探险家 我的聊天群里全是女频窝囊废 柯南:推理?不,我直接速通 文豪1879:独行法兰西 民国江湖二十年 四合院:从交道口街道办开始! 荒野大暴徒 人在峨眉,开局获取金色词条 我娘子天下第一 谁说中医全科是混子