• <tbody id="9je1r"></tbody><tbody id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></tbody>
      • <acronym id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></acronym>

        亚洲无码Aⅴ,视频1页精品,欧美系列一区二区,曰韩色999

        解題思路ASP技巧IQCar的實(shí)現(xiàn)II,用計(jì)算機(jī)如何求出IQCar游戲的解法呢

        2012/3/9 14:53:16   閱讀:2349    發(fā)布者:2349

          學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu)的,第一感覺(jué)就是用“深度優(yōu)先搜索”或者是“廣度優(yōu)先算法”。就是不停的嘗試每一種可能,直到到達(dá)解。然后將嘗試的過(guò)程輸出即可。

          這個(gè)求通路的有一個(gè)很有名的算法,Dijkstra算法(最短路徑算法)。

          那么本問(wèn)題就轉(zhuǎn)化為兩個(gè)步驟
            1、用Dijkstra算法求出一條通路,這條通路也是最短通路,也就是最優(yōu)解

          2、根據(jù)輸入的初始狀態(tài),生成一個(gè)集合,所有車子的一個(gè)位置排列為集合中的一個(gè)元素。并且為每一個(gè)元素建立他們之間的關(guān)系(有連線則表示能從一個(gè)排列移動(dòng)一個(gè)位置到另一個(gè)排列,反之則無(wú)連線)。

          注:寫(xiě)完程序后,仔細(xì)想來(lái),在本題中,由于各連線的長(zhǎng)默認(rèn)都是1,Dijkstra算法其實(shí)就是廣度優(yōu)先算法。

          例如:仔細(xì)觀察,我們可以發(fā)現(xiàn)每輛車的可能性位置可能性非常少(由于車子只能前后移動(dòng),故長(zhǎng)度為3的車子只有4種可能,長(zhǎng)度為2的車子有五種可能)。那么,則這些車子排列的可能性就不會(huì)多(原因是,如果車子多,則彼此之間的限制會(huì)很多,因?yàn)閮奢v車不能擠在一個(gè)格子里,如果車子少,雖然限制少但是車子少,必然總數(shù)少)。這樣,一般的題目,把所有的車子排列構(gòu)成一個(gè)集合的話,這個(gè)集合中的元素不會(huì)很多(實(shí)際情況是,一般的題目,這個(gè)集合的元素在1200左右)。

          想到這里我想到用圖論的方法求解。

          所有的車子的一個(gè)位置排列,成為圖中的一個(gè)點(diǎn),兩點(diǎn)之間的連線表示能從一個(gè)排列移動(dòng)一個(gè)位置到另一個(gè)排列。題目中的初始狀態(tài)為圖中的一個(gè)點(diǎn),達(dá)到解題條件的為另一個(gè)點(diǎn)(這樣的點(diǎn)可能不止一個(gè)),問(wèn)題就轉(zhuǎn)化為在圖中從一個(gè)點(diǎn)找到到另一個(gè)點(diǎn)的通路。

        亚洲无码Aⅴ,视频1页精品,欧美系列一区二区,曰韩色999
            • <tbody id="9je1r"></tbody><tbody id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></tbody>
            • <acronym id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></acronym>
              陇南市| 合阳县| 江油市| 吉木乃县| 乡宁县| 承德县| 耿马| 威宁| 乐业县| 巴塘县| 晋中市| 静海县| 郁南县| 文安县| 乡城县| 大埔县| 突泉县| 石城县| 金川县| 萨迦县| 九龙坡区| 苍溪县| 勃利县| 天全县| 舞阳县| 南城县| 新晃| 海阳市| 浦北县| 福清市| 招远市| 福海县| 崇义县| 宁都县| 柏乡县| 鄂州市| 大埔县| 清镇市| 井研县| 庄浪县| 集贤县|