<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 403, comments - 310, trackbacks - 0, articles - 7
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    USACO 1.1.5 Checker Challenge

    Posted on 2007-06-03 19:22 ZelluX 閱讀(603) 評論(0)  編輯  收藏 所屬分類: Algorithm
    一開始什么優化都沒有,過不了了(記得以前是可以的啊)
    然后用了三個hash數組記錄各列、對角線棋子的放置情況,再加上左右對稱解的優化,總算在0.828秒里過了
    /*
    PROG: checker
    ID: 06301031
    LANG: C++
    */


    #include 
    <iostream>
    #include 
    <fstream>

    using namespace std;

    int g[13];
    bool column[13], diag1[25], diag2[25];
    int n;
    int countResult = 0;
    int mid = 0, firstHalf = 0;
    ifstream fin(
    "checker.in");
    ofstream fout(
    "checker.out");

    void DFS(int t) {
        
    int i;
        
    if (t == n) {
            countResult
    ++;
            
    if (countResult <= 3{
                fout 
    << g[0+ 1;
                
    for (i = 1; i < n; i++{
                    fout 
    << " " << g[i] + 1;
                }

                fout 
    << endl;
            }

            
    return;
        }


        
    for (g[t] = 0; g[t] < n; g[t]++{
            
    if ((countResult > 3&& (t == 0)) {
                
    if (g[t] == n / 2{
                    firstHalf 
    = countResult;
                    
    if (n % 2 == 0{
                        fout 
    << firstHalf * 2 << endl;
                        exit(
    0);
                    }

                }

                
    if ((g[t] == n / 2 + 1&& (n % 2 == 1)) {
                    mid 
    = countResult - firstHalf;
                    fout 
    << firstHalf * 2 + mid << endl;
                    exit(
    0);
                }

            }

            
    if (column[g[t]]) {
                
    continue;
            }

            
    if (diag1[g[t] + t]) {
                
    continue;
            }

            
    if (diag2[g[t] - t + n]) {
                
    continue;
            }


            diag1[g[t] 
    + t] = true;
            diag2[g[t] 
    - t + n] = true;
            column[g[t]] 
    = true;
            DFS(t 
    + 1);
            diag1[g[t] 
    + t] = false;
            diag2[g[t] 
    - t + n] = false;
            column[g[t]] 
    = false;

    nextPosition:
            ;
        }

    }


    int main() {
        fin 
    >> n;
        
    int i;
        
    for (i = 0; i < n; i++{
            column[i] 
    = false;
        }

        
    for (i = 0; i < n * 2 -1; i++{
            diag1[i] 
    = false;
            diag2[i] 
    = false;
        }

        DFS(
    0);
        fout 
    << countResult << endl;
        fout.close();
        
    return 0;
    }

    主站蜘蛛池模板: a毛片在线还看免费网站| 国产亚洲精品看片在线观看| 大地资源网高清在线观看免费| 亚洲一级毛片免费在线观看| 亚洲人成无码www久久久| 精品久久久久国产免费| 国产成人AV免费观看| 国产午夜亚洲精品不卡| 久久精品国产亚洲AV麻豆网站| 国产在线ts人妖免费视频| 久久精品国产免费观看三人同眠| A国产一区二区免费入口| 美女被免费网站在线视频免费| 亚洲一区二区三区高清视频| 99人中文字幕亚洲区| 国产A在亚洲线播放| 毛茸茸bbw亚洲人| 亚洲国产成人久久综合碰| 国产麻豆剧传媒精品国产免费| 和日本免费不卡在线v| 亚洲精品在线免费观看视频| 久久成人免费电影| 国产免费爽爽视频在线观看| 中文字幕在线视频免费| 精品一区二区三区高清免费观看| 免费福利资源站在线视频| 国产在亚洲线视频观看| 激情婷婷成人亚洲综合| 高h视频在线免费观看| 免费看一级高潮毛片| 黄床大片30分钟免费看| 免费人成在线观看播放a| 猫咪免费人成网站在线观看入口| 国产亚洲精品美女久久久久久下载| 亚洲AV永久无码天堂影院| 亚洲av乱码中文一区二区三区| 久久精品亚洲日本波多野结衣| 小说专区亚洲春色校园| 日韩在线视频播放免费视频完整版 | 亚洲爱情岛论坛永久| 亚洲av无码成h人动漫无遮挡|