<strike id="3tkic"><sup id="3tkic"></sup></strike>

  1. <ul id="3tkic"></ul>
      <b id="3tkic"><legend id="3tkic"></legend></b>
      <b id="3tkic"><meter id="3tkic"></meter></b>

    • <strike id="3tkic"></strike>

      <blockquote id="3tkic"></blockquote>

    • 亚洲AV无码国产在丝袜线观看_亚洲第一页A∨在线_亚洲国产人成在线观看69网站_无码日韩人妻AV一区免费l

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

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

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

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

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

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

        注:寫完程序后,仔細想來,在本題中,由于各連線的長默認都是1,Dijkstra算法其實就是廣度優(yōu)先算法。

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

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

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

      亚洲AV无码国产在丝袜线观看_亚洲第一页A∨在线_亚洲国产人成在线观看69网站_无码日韩人妻AV一区免费l
      <strike id="3tkic"><sup id="3tkic"></sup></strike>

      1. <ul id="3tkic"></ul>
          <b id="3tkic"><legend id="3tkic"></legend></b>
          <b id="3tkic"><meter id="3tkic"></meter></b>

        • <strike id="3tkic"></strike>

          <blockquote id="3tkic"></blockquote>

        • 普洱| 肥城市| 刚察县| 灵川县| 东阿县| 洪雅县| 新密市| 福清市| 瑞昌市| 正宁县| 东莞市| 年辖:市辖区| 新营市| 呼玛县| 枣强县| 藁城市| 湖州市| 堆龙德庆县| 高阳县| 汉阴县| 屏东县| 邵阳县| 晋江市| 巩义市| 仁怀市| 林周县| 霍邱县| 广东省| 麻城市| 营口市| 阿拉尔市| 郎溪县| 西乌| 嘉荫县| 丹寨县| 邢台市| 金川县| 大关县| 景宁| 遂宁市| 林州市|