青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

POJ百練 - 2814:撥鐘問題

鏈接: http://poj.grids.cn/practice/2814

個題目可以枚舉或者直接暴力。但是,這之前必須弄明白答案的解空間。。。也就是解可能的情況。。。很簡單,一共有9種移動方案。也很了然的知道對于某種方案使用N次的效果等同于N%4的效果,也就是說某種方案只可能使用0,1,2,3次。。。一共有9種方案,那么一共就只有4^9種可能的解。。。這么小的解空間,無論用什么方法都不會超時了。。。暴力可以才用9重循環,或者深搜,當時覺得寫9重循環是件很糗的事情,就果斷深搜了。。。
如果這題才用枚舉的方法的話,思考方式還是那樣先確定假設解的部分情況,通過已經知道的規則確定解的其它情況,然后求出這個解,判斷這個解是否滿足題目要求。。。比如,我們可以枚舉1,2,3號方案的情況,根據規則確定其它方案的使用情況,求出所有方案的使用情況后,判斷假設的解是否滿足要求就可以了...

我才用的是dfs+剪枝,這個題目其實題意或者說答案有誤,因為答案是搜索找到第一個解,而不是所謂的最短序列的解,當然如果數據使得2者都是一樣的話,那么題意就無誤了...我的代碼是假設找到的第一個就是最短序列的,這種情況下才能使用剪枝,因為找到一個解后就不需要繼續找了...


代碼如下:
#include <stdio.h>
int nMinTimes;
int nPath[40];
bool bFind = false;
char* szMoves[10] =
{
    NULL,
    "ABDE",
    "ABC",
    "BCEF",
    "ADG",
    "BDEFH",
    "CFI",
    "DEGH",
    "GHI",
    "EFHI"
};
bool IsPosOK(int* nPos)
{
    for (int i = 0; i < 9; ++i)
    {
        if (nPos[i])
        {
            return false;
        }
    }
    return true;
}
void Move(int nChoose, int nTimes, int* nPos)
{
    if (nTimes > 0)
    {
        char* pszStr = szMoves[nChoose];
        while (*pszStr)
        {
            nPos[*pszStr - 'A'] = (nPos[*pszStr - 'A'] + nTimes) % 4;
            ++pszStr;
        }
    }
}
void MoveBack(int nChoose, int nTimes, int* nPos)
{
    if (nTimes > 0)
    {
        char* pszStr = szMoves[nChoose];
        while (*pszStr)
        {
            nPos[*pszStr - 'A'] = (nPos[*pszStr - 'A'] - nTimes + 4) % 4;
            ++pszStr;
        }
    }
}
void Cal(int nChoose, int* nPos, int* nUsed, int nUsedTimes)
{
    if (nChoose == 10)
    {
        if (IsPosOK(nPos) && !bFind)
        {
            nMinTimes = nUsedTimes;
            for (int i = 0; i < nMinTimes; ++i)
            {
                nPath[i] = nUsed[i];
            }
            bFind = true;
        }
        return;
    }
    for (int i = 0; i <= 3; ++i)
    {
        Move(nChoose, i, nPos);
        for (int j = 0; j < i; ++j)//放入i次的nChoose
        {
            nUsed[nUsedTimes + j] = nChoose;
        }
        if (!bFind)
        {
            Cal(nChoose + 1, nPos, nUsed, nUsedTimes + i);
        }
        MoveBack(nChoose, i, nPos);
    }
}
int main()
{
    int nPos[9];
    int nUsed[40];
    for (int i = 0; i < 9; ++i)
    {
        scanf("%d", &nPos[i]);
    }
    Cal(1, nPos, nUsed, 0);
    for (int i = 0; i < nMinTimes; ++i)
    {
        printf("%d", nPath[i]);
        if (i != nMinTimes - 1)
        {
            putchar(' ');
        }
        else
        {
            putchar('\n');
        }
    }
    
    return 0;
}

這道題其實我wa了近10次,原因就是Move和MoveBack寫錯了,沒有移動nTimes次,而前面一直寫成了1,昨晚wa得實在無語了...今天晚上檢查才突然發現的...
這半個多月做了60道題了,都沒有改動這低級的bug習慣...實在無語...遞歸,回溯,剪枝都寫上了...唉...實在無語...還不如直接9重循環,多省心...真不該歧視某種方法的...

posted on 2011-11-28 19:55 yx 閱讀(4095) 評論(0)  編輯 收藏 引用 所屬分類: 搜索 、模擬

<2011年11月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

導航

統計

公告

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

me

好友

同學

網友

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲图片激情小说| 国产精品综合| 欧美日韩国语| 亚洲国产裸拍裸体视频在线观看乱了 | 久久精品国产亚洲高清剧情介绍| 欧美刺激性大交免费视频| 欧美一区激情视频在线观看| 国产麻豆精品theporn| 午夜精品久久久久| 亚洲天堂成人| 国产精品免费福利| 亚洲欧美日韩中文在线制服| 在线午夜精品自拍| 国产精品男女猛烈高潮激情| 亚洲综合色激情五月| 亚洲小说春色综合另类电影| 国产精品a级| 久久成人一区| 久久久国产精品一区| 在线精品观看| 欧美高清hd18日本| 欧美激情偷拍| 亚洲在线免费观看| 欧美一区二区三区成人| 国产亚洲福利| 狼人天天伊人久久| 欧美 日韩 国产一区二区在线视频| 91久久精品国产91久久| 亚洲欧洲综合| 国产精品成人观看视频免费| 欧美一二三视频| 久久一二三四| 中文一区在线| 小处雏高清一区二区三区| 黄色综合网站| 亚洲免费av网站| 国产亚洲欧美日韩日本| 亚洲国产精品悠悠久久琪琪| 欧美三级黄美女| 久久亚洲精品伦理| 欧美伦理在线观看| 久久久999国产| 欧美精品一区视频| 久久国产综合精品| 欧美极品影院| 久久久久网址| 欧美日韩国产区一| 久热爱精品视频线路一| 欧美日韩久久不卡| 久久野战av| 欧美午夜剧场| 美腿丝袜亚洲色图| 免费看黄裸体一级大秀欧美| 中文av字幕一区| 很黄很黄激情成人| 亚洲色图自拍| 亚洲精品美女91| 欧美一区二区视频在线观看2020 | 亚洲日本欧美天堂| 亚洲一区二区三区精品在线观看| 亚洲第一中文字幕| 亚洲欧美日本国产有色| 亚洲精品乱码久久久久久久久| 先锋影音国产精品| 这里只有精品电影| 欧美不卡视频一区发布| 久久久久久久成人| 国产精品一区视频网站| 亚洲欧洲免费视频| 激情视频一区| 亚洲欧美日韩精品久久| 日韩一二三在线视频播| 久久一二三四| 免费亚洲视频| 国产日韩欧美中文在线播放| 夜夜爽99久久国产综合精品女不卡 | 亚洲国产精品毛片| 午夜精品www| 先锋亚洲精品| 国产精品免费区二区三区观看| 亚洲精品综合在线| 一本大道久久a久久精品综合| 噜噜爱69成人精品| 欧美v日韩v国产v| 黄色亚洲在线| 久久久精品免费视频| 久久久噜噜噜久噜久久| 国产亚洲欧美一级| 欧美一区二区三区四区在线| 欧美在线播放视频| 国产一区二区三区日韩| 欧美在线日韩精品| 裸体一区二区| 亚洲黄色一区二区三区| 免费黄网站欧美| 欧美激情1区| 99精品欧美一区二区蜜桃免费| 欧美国产第一页| 亚洲精品一区二区三区樱花| 这里只有精品丝袜| 国产精品入口66mio| 午夜精品久久| 快播亚洲色图| 日韩亚洲精品在线| 国产精品成人免费精品自在线观看| 一区二区三区四区五区精品| 亚洲欧美日韩高清| 国产中文一区二区三区| 久久精品91久久久久久再现| 欧美国产第一页| 一区二区三区四区五区在线| 国产精品日韩欧美综合| 久久九九国产精品| 最新国产精品拍自在线播放| 亚洲欧美影院| 精品51国产黑色丝袜高跟鞋| 欧美高清视频在线播放| 国产在线播精品第三| 欧美成年人在线观看| 一区二区三区国产精品| 国产精品免费看片| 久久精品日韩欧美| 亚洲第一中文字幕在线观看| 在线亚洲欧美视频| 国产亚洲a∨片在线观看| 久久亚洲一区| 一区二区三区www| 老司机午夜免费精品视频| 99在线精品视频在线观看| 国产欧美日韩在线视频| 欧美1区2区3区| 午夜精品久久久久久99热软件| 欧美高清视频一区二区| 性做久久久久久久久| 亚洲精品老司机| 国产色婷婷国产综合在线理论片a| 麻豆av一区二区三区久久| 亚洲天堂成人在线视频| 亚洲高清视频的网址| 欧美在线观看视频一区二区| 99国产精品久久| 伊人久久综合| 国产亚洲精品成人av久久ww| 欧美日韩国产一级片| 玖玖玖国产精品| 午夜精品久久久久久久男人的天堂 | 亚洲人成免费| 国产午夜精品美女毛片视频| 欧美日本一道本在线视频| 久久露脸国产精品| 午夜精品一区二区三区在线视 | 欧美与欧洲交xxxx免费观看| 亚洲精品久久久久久一区二区| 久久亚洲私人国产精品va媚药| 午夜精品国产精品大乳美女| 99国产精品国产精品久久 | 99亚洲伊人久久精品影院红桃| 欧美不卡视频一区发布| 久久国产精彩视频| 亚洲欧美在线网| 亚洲一级片在线观看| 亚洲卡通欧美制服中文| 在线欧美三区| 在线观看日韩av电影| 国产一区二区精品在线观看| 国产精品久久中文| 欧美日韩在线一二三| 欧美国产精品久久| 欧美国产精品专区| 欧美国产精品一区| 欧美电影在线观看完整版| 猛男gaygay欧美视频| 麻豆av福利av久久av| 免费视频最近日韩| 欧美高清在线观看| 欧美日韩国产成人精品| 欧美日本久久| 欧美视频日韩| 国产精品久久久久久久久借妻 | 久久午夜视频| 免费影视亚洲| 亚洲福利在线看| 亚洲区中文字幕| 一区二区三区视频在线播放| 亚洲宅男天堂在线观看无病毒| 亚洲综合色自拍一区| 亚洲视频免费在线| 性做久久久久久免费观看欧美| 亚洲在线观看免费视频| 午夜精品久久久久久久白皮肤| 午夜日韩av| 久久er99精品| 欧美xx视频| 亚洲精品欧美一区二区三区| 日韩午夜av在线| 午夜精品久久久久| 欧美一区二区久久久| 亚洲成在人线av| 亚洲激情在线观看| 欧美香蕉大胸在线视频观看|