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

PKU1137 The New Villa 裸BFS+位壓縮判重

http://poj.org/problem?id=1137
題目是說,一個人要從1號房間走到N號房間,每間房間里可能有其他房間燈的開關,這個人只能走到燈開著的房間里。開始時1號房間燈開著,其他房間燈都沒開,問從1號房間走到N號房間并且僅僅保留N號房間的燈至少需要多少步。
這道題沒有SPJ,非常的惡心,走的順序應該是如果能到別的房間先到別的房間,否則如果能關燈先關燈,然后再開燈,所有步驟內的順序按照節點編號從小到大處理。BFS很好辦,用類似A*的牛們可能就悲劇點了~其實也好控制,在優先級里面加入第二關鍵字就可以了。
判重的時候還是用位壓縮。
有點要注意是用printf將浮點數轉化為整數時一定要強制轉化下,否則也可以用%.0f輸出

  1 # include <iostream>
  2 # include <cstdio>
  3 # include <vector>
  4 # include <cmath>
  5 # include <cstring>
  6 # include <algorithm>
  7 bool used[50000];
  8 int q[50000][3],s,e;
  9 # define N 12
 10 using namespace std;
 11 vector<int> g[N];
 12 vector<int> l[N];
 13 void print(int res)
 14 {
 15             
 16               if(q[res][2]==-1return;  
 17               print(q[res][2]);
 18               int ps=q[q[res][2]][0]&((1<<11)-1),ns=q[res][0]&((1<<11)-1);
 19               if(ps>ns)
 20                 printf("- Switch off light in room %.0f.\n",log(ps-ns)/log(2.0)+1e-6);//這里輸出浮點數注意!
 21               else if(ps<ns)
 22                 printf("- Switch on light in room %.0f.\n",log(ns-ps)/log(2)+1e-6);
 23               else
 24                 printf("- Move to room %d.\n",q[res][0]>>11);             
 25 }
 26 int main()
 27 {
 28   // freopen("ans.txt","w",stdout);
 29     int n,d,s,c=1;
 30     while(true)
 31     {
 32        scanf("%d%d%d",&n,&d,&s);
 33        if(!n&&!d&&!s) break;
 34        for(int i=1;i<=n;i++)
 35        {
 36           g[i].clear();
 37           l[i].clear();
 38           
 39        }
 40        while(d--)
 41        {
 42           int u,v;
 43           scanf("%d%d",&u,&v);
 44           g[u].push_back(v);
 45           g[v].push_back(u);
 46        }
 47        while(s--)
 48        {
 49           int u,v;
 50           scanf("%d%d",&u,&v);
 51           l[u].push_back(v);
 52        }
 53        for(int i=1;i<=n;i++)
 54        {
 55          sort(g[i].begin(),g[i].end());
 56          sort(l[i].begin(),l[i].end());
 57        }
 58        s=e=-1;
 59        e=0;
 60        q[e][0]=(1<<11)|(1<<1);
 61        q[e][1]=0;
 62        q[e][2]=-1;
 63        int res=-1;
 64        memset(used,false,sizeof(used));
 65        used[q[e][0]]=true;
 66        while(s!=e&&res==-1)
 67        {
 68           int pos=q[++s][0],len=q[s][1];
 69           if(pos==((n<<11)|(1<<n))) res=s;
 70           int sta=pos&((1<<11)-1);
 71           pos>>=11;
 72           for(int i=0;i<g[pos].size();i++)
 73             if(!used[(g[pos][i]<<11)|sta]&&(sta|(1<<g[pos][i]))==sta)
 74             {
 75                used[(g[pos][i]<<11)|sta]=true;
 76                q[++e][0]=(g[pos][i]<<11)|sta;
 77                q[e][1]=len+1;
 78                q[e][2]=s;
 79             }
 80           for(int i=0;i<l[pos].size();i++)
 81             if(l[pos][i]!=pos&&(sta|(1<<l[pos][i]))==sta&&!used[(pos<<11)|(sta-(1<<l[pos][i]))])
 82             {
 83               used[(pos<<11)|(sta-(1<<l[pos][i]))]=true;
 84               q[++e][0]=(pos<<11)|(sta-(1<<l[pos][i]));
 85               q[e][1]=len+1;
 86               q[e][2]=s;
 87             }
 88           for(int i=0;i<l[pos].size();i++)
 89             if((sta|(1<<l[pos][i]))!=sta&&!used[(pos<<11)|(sta|(1<<l[pos][i]))])
 90             {
 91               used[(pos<<11)|(sta|(1<<l[pos][i]))]=true;
 92               q[++e][0]=(pos<<11)|(sta|(1<<l[pos][i]));
 93               q[e][1]=len+1;
 94               q[e][2]=s;
 95             }
 96           
 97        }
 98        printf("Villa #%d\n",c++);
 99        if(res==-1) printf("The problem cannot be solved.\n\n");
100        else
101        {
102            printf("The problem can be solved in %d steps:\n",q[res][1]);
103            print(res); 
104            printf("\n");
105        }
106      
107     }
108     return 0;
109 }
110 

posted on 2010-10-12 21:28 yzhw 閱讀(250) 評論(0)  編輯 收藏 引用 所屬分類: search

<2010年12月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

導航

統計

公告

統計系統

留言簿(1)

隨筆分類(227)

文章分類(2)

OJ

最新隨筆

搜索

積分與排名

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产欧美一区在线| 小嫩嫩精品导航| 亚洲自啪免费| 亚洲一线二线三线久久久| av成人免费在线| 一区二区三区久久久| 亚洲性图久久| 欧美专区亚洲专区| 久久久777| 欧美国产精品v| 亚洲黄网站黄| 国产精品久久久久影院色老大 | 亚洲高清在线观看| 亚洲国产高潮在线观看| 亚洲精品资源| 亚洲女优在线| 久久综合一区二区三区| 欧美国内亚洲| 国产欧美日韩视频| 亚洲人成网站在线观看播放| 亚洲视频高清| 欧美jjzz| 一区二区三区日韩精品| 久久精品国产v日韩v亚洲| 欧美激情一区二区三区蜜桃视频| 欧美日韩伊人| 亚洲丶国产丶欧美一区二区三区| 日韩视频在线免费观看| 性做久久久久久久久| 欧美xart系列高清| 制服诱惑一区二区| 美女在线一区二区| 国产麻豆成人精品| 日韩午夜中文字幕| 久热精品视频在线观看一区| 亚洲精品自在久久| 久热精品视频在线观看| 国产精品久久夜| 亚洲激情小视频| 欧美在线一二三四区| 亚洲人成7777| 久久这里只有精品视频首页| 国产精品丝袜久久久久久app| 亚洲国产清纯| 久久久久一本一区二区青青蜜月| 一片黄亚洲嫩模| 欧美精品18| 亚洲第一综合天堂另类专| 久久精品二区亚洲w码| 一本久道久久综合狠狠爱| 欧美成年人视频| 1024亚洲| 欧美成人免费全部| 久久久不卡网国产精品一区| 国产精品夜夜夜一区二区三区尤| 99爱精品视频| 欧美国产第一页| 久久国产精品久久久| 国产精品一区二区你懂的| 亚洲午夜精品福利| 亚洲欧洲一区二区三区| 久久综合网色—综合色88| 精品av久久久久电影| 欧美在线关看| 欧美一区二区免费视频| 999亚洲国产精| 欧美日韩亚洲成人| 一本色道婷婷久久欧美| 影音先锋一区| 麻豆精品一区二区综合av| 欧美中文字幕久久| 国产亚洲精品自拍| 久久精品一区二区| 午夜精品久久久久久| 国产精品久久久99| 亚洲一区自拍| 亚洲欧美不卡| 国产伊人精品| 久久综合久色欧美综合狠狠| 久久精品国产精品亚洲精品| 国产欧美日本一区视频| 99这里只有久久精品视频| 99精品国产在热久久下载| 国产精品久久久久久妇女6080| 中文久久精品| 亚洲欧美在线一区二区| 亚洲福利视频网| 日韩写真在线| 国产在线一区二区三区四区| 久久婷婷蜜乳一本欲蜜臀| 欧美成人网在线| 亚洲欧美日韩在线一区| 欧美在线综合| 欧美波霸影院| 亚洲欧美日韩一区二区在线| 久久av在线| 亚洲精品日韩在线观看| 亚洲图片在线观看| 国产一区二区三区av电影| 久久夜色精品一区| 欧美精品啪啪| 欧美一区二区三区啪啪| 久久免费视频网站| 一本色道久久综合亚洲精品婷婷| 亚洲免费在线电影| 91久久一区二区| 一区二区三区四区蜜桃| 黄色成人在线网站| 亚洲国产成人porn| 国产精品手机视频| 亚洲精品在线免费观看视频| 国产原创一区二区| 亚洲高清在线精品| 国产一区视频观看| 日韩视频一区二区三区在线播放免费观看| 国产精品福利av| 欧美岛国在线观看| 国产精品日本一区二区| 女同性一区二区三区人了人一| 国产精品久久久久久妇女6080| 欧美激情精品久久久久久免费印度| 欧美激情精品久久久久久免费印度| 午夜欧美大尺度福利影院在线看| 久久亚洲图片| 性做久久久久久免费观看欧美| 欧美日韩成人综合天天影院| 麻豆成人在线| 国产女精品视频网站免费 | 国产精品日韩欧美| 亚洲国产欧美一区二区三区久久| 欧美一区二区三区免费大片| 亚洲一区二区精品在线观看| 欧美高清视频免费观看| 欧美二区在线观看| 在线成人黄色| 久久欧美中文字幕| 久久免费黄色| 韩国v欧美v日本v亚洲v| 香蕉成人久久| 久久久久国产精品www| 国产精品一区免费观看| 一本一道久久综合狠狠老精东影业| 99国产一区| 欧美不卡激情三级在线观看| 亚洲国产高清一区| 亚洲免费高清视频| 欧美日韩一区在线观看视频| 亚洲精品日韩精品| 一区二区三欧美| 欧美色一级片| 亚洲专区在线| 久久久久99| 亚洲精品一区二区三区婷婷月| 欧美第一黄网免费网站| 亚洲人成毛片在线播放女女| 日韩午夜三级在线| 国产精品久久久久久模特| 99亚洲伊人久久精品影院红桃| 亚洲欧美区自拍先锋| 国产乱码精品一区二区三区av| 午夜精品一区二区在线观看 | 久久久久久日产精品| 久久噜噜亚洲综合| 日韩午夜视频在线观看| 国产精品专区一| 久久精品亚洲乱码伦伦中文 | 亚洲欧美韩国| 久久久久成人精品| 亚洲精品一区二区三区蜜桃久| 欧美体内she精视频在线观看| 亚洲欧美激情精品一区二区| 久久综合伊人77777尤物| 亚洲精品一区二区三区四区高清 | 欧美在线播放高清精品| 在线免费观看日韩欧美| 欧美巨乳在线观看| 欧美一区二区三区电影在线观看| 欧美成人一区二区三区在线观看| 在线视频免费在线观看一区二区| 国产人成一区二区三区影院| 欧美aaa级| 欧美制服第一页| 一本色道久久综合亚洲91| 老司机午夜精品| 亚洲综合丁香| 91久久精品一区| 国产农村妇女精品一区二区| 欧美精品一区二区三区很污很色的 | 亚洲高清在线播放| 新片速递亚洲合集欧美合集| 一区二区三区在线观看视频| 欧美视频日韩| 欧美大片一区| 久久久久久成人| 亚洲一区制服诱惑| 亚洲人人精品| 亚洲激情视频在线播放| 久久亚洲一区| 欧美在线免费视频| 亚洲综合99|