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

Why so serious? --[NKU]schindlerlee

2010年03月04日星期四.pku1448 && nwerc 2001 cube 超麻煩的搜索

2010年03月04日星期四.pku1448 && nwerc 2001 cube 超麻煩的搜索
pku1448:這題就兩個字弓雖
給出六個平面,問是不是能拼成一個立方體。
每個面有8種狀態, 0,90,180,270,然后還有鏡面翻轉之后同樣的四個狀態。
然后可以選一個當底面,另外5個全排列。
復雜度是 5! * 8 ^ 5...如果剪枝不夠好的話就會TLE了。。
我用的方法是把立方體按照這種方法展開:
/*
?* oh my god!!
?.??????????????????????????????????????????? ?? [0][0] [0][1] [0][2] [0][3] [0][4] [0][5]?????????????????????????????????????????? ?
?.???????????????????????????????????????????? 2[1][0] [1][1] [1][2] [1][3] [1][4] [1][5]????????????????????????????????????????? ?
?.??????????????????????????????????????????? ?? [2][0] [2][1] [2][2] [2][3] [2][4] [2][5]????????????????????????????????????????? ?
?.??????????????????????????????????????????? ?? [3][0] [3][1] [3][2] [3][3] [3][4] [3][5]????????????????????????????????????????? ?
?.??????????????????????????????????????????? ?? [4][0] [4][1] [4][2] [4][3] [4][4] [4][5]????????????????????????????????????????? ?
?.???????????????????????????????????????????? ? [5][0] [5][1] [5][2] [5][3] [5][4] [5][5]????????????????????????????????????????? ?
?.
?.? [0][0] [0][1] [0][2] [0][3] [0][4] [0][5]?? [0][0] [0][1] [0][2] [0][3] [0][4] [0][5] ? [0][0] [0][1] [0][2] [0][3] [0][4] [0][5] ? [0][0] [0][1] [0][2] [0][3] [0][4] [0][5]
?.? [1][0] [1][1] [1][2] [1][3] [1][4] [1][5]?? [1][0] [1][1] [1][2] [1][3] [1][4] [1][5]?? [1][0] [1][1] [1][2] [1][3] [1][4] [1][5] ? [1][0] [1][1] [1][2] [1][3] [1][4] [1][5]
?.? [2][0] [2][1] [2][2] [2][3] [2][4] [2][5]?? [2][0] [2][1] [2][2] [2][3] [2][4] [2][5] ? [2][0] [2][1] [2][2] [2][3] [2][4] [2][5] ? [2][0] [2][1] [2][2] [2][3] [2][4] [2][5]
?.? [3][0] [3][1] [3][2] [3][3] [3][4] [3][5]?? [3][0] [3][1] [3][2] [3][3] [3][4] [3][5] 4[3][0] [3][1] [3][2] [3][3] [3][4] [3][5] 5[3][0] [3][1] [3][2] [3][3] [3][4] [3][5]
?.1[4][0] [4][1] [4][2] [4][3] [4][4] [4][5] 0[4][0] [4][1] [4][2] [4][3] [4][4] [4][5] ? [4][0] [4][1] [4][2] [4][3] [4][4] [4][5]?? [4][0] [4][1] [4][2] [4][3] [4][4] [4][5]
?.? [5][0] [5][1] [5][2] [5][3] [5][4] [5][5]?? [5][0] [5][1] [5][2] [5][3] [5][4] [5][5] ? [5][0] [5][1] [5][2] [5][3] [5][4] [5][5] ? [5][0] [5][1] [5][2] [5][3] [5][4] [5][5]
?.
?.?????????????????????????????????????????? ? ? [0][0] [0][1] [0][2] [0][3] [0][4] [0][5]????????????????????????????????????????? ?
?.????????????????????????????????????????? ? ?? [1][0] [1][1] [1][2] [1][3] [1][4] [1][5]????????????????????????????????????????? ?
?.???????????????????????????????????????? ? ??? [2][0] [2][1] [2][2] [2][3] [2][4] [2][5]????????????????????????????????????????? ?
?.???????????????????????????????????????????? 3[3][0] [3][1] [3][2] [3][3] [3][4] [3][5]????????????????????????????????????????? ?
?.??????????????????????????????????????????? ?? [4][0] [4][1] [4][2] [4][3] [4][4] [4][5]????????????????????????????????????????? ?
?.??????????????????????????????????????????? ?? [5][0] [5][1] [5][2] [5][3] [5][4] [5][5]????????????????????????????????????????? ?
?* */


然后找出角點和邊的對應關系,之后檢查每個點是否之后一個X。
?1?bool?ckvertex()
?2?{
?3???int?a;
?4???a?=?p[c[0]][0][0]?+?p[c[1]][0][5]?+?p[c[2]][5][0];?if?(a?!=?1)?{?return?false;?}
?5???a?=?p[c[0]][0][5]?+?p[c[2]][5][5]?+?p[c[4]][0][0];?if?(a?!=?1)?{?return?false;?}
?6???a?=?p[c[0]][5][0]?+?p[c[1]][5][5]?+?p[c[3]][0][0];?if?(a?!=?1)?{?return?false;?}
?7???a?=?p[c[0]][5][5]?+?p[c[4]][5][0]?+?p[c[3]][0][5];?if?(a?!=?1)?{?return?false;?}
?8???//
?9???a?=?p[c[1]][0][0]?+?p[c[2]][0][0]?+?p[c[5]][0][5];?if?(a?!=?1)?{?return?false;?}
10???a?=?p[c[1]][5][0]?+?p[c[3]][5][0]?+?p[c[5]][5][5];?if?(a?!=?1)?{?return?false;?}
11???a?=?p[c[2]][0][5]?+?p[c[4]][0][5]?+?p[c[5]][0][0];?if?(a?!=?1)?{?return?false;?}
12???a?=?p[c[3]][5][5]?+?p[c[4]][5][5]?+?p[c[5]][5][0];?if?(a?!=?1)?{?return?false;?}
13???return?true;
14?}
15?http://www.shnenglu.com/schindlerlee/
16?bool?ckedge()
17?{
18???int?i,a;
19???for?(i?=?1;i?<=?4;i++)?{
20???????a?=?p[c[0]][0][i]?+?p[c[2]][5][i];if(a?!=?1)?return?false;
21???????a?=?p[c[0]][5][i]?+?p[c[3]][0][i];if(a?!=?1)?return?false;
22???????a?=?p[c[0]][i][0]?+?p[c[1]][i][5];if(a?!=?1)?return?false;
23???????a?=?p[c[0]][i][5]?+?p[c[4]][i][0];if(a?!=?1)?return?false;
24???????//bottom
25???????a?=?p[c[1]][0][i]?+?p[c[2]][i][0];if(a?!=?1)?return?false;
26???????a?=?p[c[1]][5][i]?+?p[c[3]][5-i][0];if(a?!=?1)?return?false;
27???????a?=?p[c[4]][0][i]?+?p[c[2]][5-i][5];if(a?!=?1)?return?false;
28???????a?=?p[c[3]][i][5]?+?p[c[4]][5][i];if(a?!=?1)?return?false;
29???????//vertical
30???????a?=?p[c[2]][0][i]?+?p[c[5]][0][5-i];if(a?!=?1)?return?false;
31???????a?=?p[c[3]][5][i]?+?p[c[5]][5][5-i];if(a?!=?1)?return?false;
32???????a?=?p[c[4]][i][5]?+?p[c[5]][i][0];if(a?!=?1)?return?false;
33???????a?=?p[c[1]][i][0]?+?p[c[5]][i][5];if(a?!=?1)?return?false;
34???????//up
35???}
36???return?true;
37?}

不能把這兩個函數放在遞歸出口,一定會超時。。。
需要把這兩個函數做成剪枝才能不超時。
??1?
??2?char?p[6][6][6];
??3?int?c[6]?=?{0,1,2,3,4,5};
??4?
??5?void?rotate90(char?p[6][6])
??6?{
??7???char?t;
??8???char?tmp[6];
??9???t?=?p[0][0];?//?vertex
?10???p[0][0]?=?p[0][5];
?11???p[0][5]?=?p[5][5];
?12???p[5][5]?=?p[5][0];
?13???p[5][0]?=?t;
?14?
?15???for?(int?i?=?1;i?<=?4;i++)?{?tmp[i]?=?p[0][i];?}
?16???for?(int?i?=?1;i?<=?4;i++)?{?p[0][i]?=?p[i][5];?}
?17???for?(int?i?=?1;i?<=?4;i++)?{?p[i][5]?=?p[5][5-i];?}
?18???for?(int?i?=?1;i?<=?4;i++)?{?p[5][i]?=?p[i][0];?}
?19???for?(int?i?=?1;i?<=?4;i++)?{?p[i][0]?=?tmp[5-i];?}
?20?}
?21?
?22?void?reflect(char?p[6][6])
?23?{
?24???int?i;
?25???char?tmp[6];
?26???for?(i?=?0;i?<?6;i++)?{?tmp[i]?=?p[0][i];?}
?27???for?(i?=?0;i?<?6;i++)?{?p[0][i]?=?p[5][i];?}
?28???for?(i?=?0;i?<?6;i++)?{?p[5][i]?=?tmp[i];?}
?29???swap(p[1][0],p[4][0]);
?30???swap(p[2][0],p[3][0]);
?31?
?32???swap(p[1][5],p[4][5]);
?33???swap(p[2][5],p[3][5]);
?34?}
?35?
?36?bool?dfs(int?depth)
?37?{
?38???int?a,i;
?39???if?(depth?==?2)?{
?40???????for?(i?=?1;i?<=?4;i++)?{
?41???????????a?=?p[c[0]][i][0]?+?p[c[1]][i][5];if(a?!=?1)?return?false;
?42???????}
?43???}
?44?
?45???if?(depth?==?3)?{
?46???????for?(i?=?1;i?<=?4;i++)?{
?47???????????a?=?p[c[1]][0][i]?+?p[c[2]][i][0];if(a?!=?1)?return?false;
?48???????????a?=?p[c[0]][0][i]?+?p[c[2]][5][i];if(a?!=?1)?return?false;
?49???????}
?50???????a?=?p[c[0]][0][0]?+?p[c[1]][0][5]?+?p[c[2]][5][0];?if?(a?!=?1)?{?return?false;?}
?51???}
?52?
?53???if?(depth?==?4)?{
?54???????for?(i?=?1;i?<=?4;i++)?{
?55???????????a?=?p[c[1]][5][i]?+?p[c[3]][5-i][0];if(a?!=?1)?return?false;
?56???????????a?=?p[c[0]][5][i]?+?p[c[3]][0][i];if(a?!=?1)?return?false;
?57???????}
?58???????a?=?p[c[0]][5][0]?+?p[c[1]][5][5]?+?p[c[3]][0][0];?if?(a?!=?1)?{?return?false;?}
?59???}
?60?
?61???if?(depth?==?5)?{
?62???????for?(i?=?1;i?<=?4;i++)?{
?63???????????a?=?p[c[3]][i][5]?+?p[c[4]][5][i];if(a?!=?1)?return?false;
?64???????????a?=?p[c[0]][i][5]?+?p[c[4]][i][0];if(a?!=?1)?return?false;
?65???????????a?=?p[c[4]][0][i]?+?p[c[2]][5-i][5];if(a?!=?1)?return?false;
?66???????}
?67???????a?=?p[c[0]][0][5]?+?p[c[2]][5][5]?+?p[c[4]][0][0];?if?(a?!=?1)?{?return?false;?}
?68???????a?=?p[c[0]][5][5]?+?p[c[4]][5][0]?+?p[c[3]][0][5];?if?(a?!=?1)?{?return?false;?}
?69???}
?70?
?71???if?(depth?==?6)?{
?72???????for?(i?=?1;i?<=?4;i++)?{
?73???????????a?=?p[c[3]][5][i]?+?p[c[5]][5][5-i];if(a?!=?1)?return?false;
?74???????????a?=?p[c[4]][i][5]?+?p[c[5]][i][0];if(a?!=?1)?return?false;
?75???????????a?=?p[c[1]][i][0]?+?p[c[5]][i][5];if(a?!=?1)?return?false;
?76???????????a?=?p[c[2]][0][i]?+?p[c[5]][0][5-i];if(a?!=?1)?return?false;
?77???????}
?78???????//
?79???????a?=?p[c[1]][0][0]?+?p[c[2]][0][0]?+?p[c[5]][0][5];?if?(a?!=?1)?{?return?false;?}
?80???????a?=?p[c[1]][5][0]?+?p[c[3]][5][0]?+?p[c[5]][5][5];?if?(a?!=?1)?{?return?false;?}
?81???????a?=?p[c[2]][0][5]?+?p[c[4]][0][5]?+?p[c[5]][0][0];?if?(a?!=?1)?{?return?false;?}
?82???????a?=?p[c[3]][5][5]?+?p[c[4]][5][5]?+?p[c[5]][5][0];?if?(a?!=?1)?{?return?false;?}
?83??
?84???????return?true;
?85???}
?86?
?87???for?(int?i?=?0;i?<?4;i++)?{
?88???????rotate90(p[c[depth]]);
?89???????if(dfs(depth?+?1))
?90?????????return?true;
?91???}
?92???reflect(p[c[depth]]);
?93???for?(int?i?=?0;i?<?4;i++)?{
?94???????rotate90(p[c[depth]]);
?95???????if(dfs(depth?+?1))
?96?????????return?true;
?97???}
?98???reflect(p[c[depth]]);
?99???return?false;
100?}
101?
102?bool?judge()
103?{
104???int?i,j,k;
105???do?{
106???????if(dfs(1))
107?????????return?true;
108???}while(next_permutation(c?+?1,c?+?6));
109?}
110?
111?int?main()
112?{
113???int?i,j,k,testcase,testid?=?1;
114???scanf("%d\n",&testcase);
115???while?(testcase--)?{
116???????for?(i?=?0;i?<?6;i++)?{?c[i]?=?i;?}
117???????for?(j?=?0;j?<?6;j++)?{
118???????????for?(i?=?0;i?<?6;i++)?{
119???????????????for?(k?=?0;k?<?6;k++)?{
120???????????????????p[i][j][k]?=?getchar();
121???????????????}
122???????????????getchar();
123???????????}
124???????????getchar();
125???????}
126???????for?(i?=?0;i?<?6;i++)?{
127???????????for?(j?=?0;j?<?6;j++)?{
128???????????????for?(k?=?0;k?<?6;k++)?{
129???????????????????p[i][j][k]?=?(p[i][j][k]?==?'X');
130???????????????}
131???????????}
132???????}
133???????printf("Scenario?#%d:\n",testid++);
134???????if?(judge())?{
135???????????printf("Yes\n");
136???????}else?{
137???????????printf("No\n");
138???????}
139???????putchar(10),?getchar();
140???}
141???return?0;
142?}
143?
144?

posted on 2010-03-04 12:49 schindlerlee 閱讀(1244) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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字幕一区| 亚洲精品裸体| 蜜臀va亚洲va欧美va天堂| 亚洲免费一在线| 亚洲美女毛片| 久久在线免费视频| 久久综合婷婷| 国产一区二区无遮挡| 99热免费精品在线观看| 亚洲大胆人体视频| 久久久欧美精品sm网站| 久久久91精品国产一区二区三区 | 亚洲天堂av高清| 99精品欧美一区二区三区| 米奇777超碰欧美日韩亚洲| 久久久天天操| 国内精品久久久久久影视8| 西瓜成人精品人成网站| 午夜精品三级视频福利| 国产精品日韩在线一区| 一区二区三区四区精品| 亚洲图中文字幕| 国产精品久久久久99| 亚洲欧美区自拍先锋| 欧美日韩国产小视频在线观看| 91久久精品国产| 一区二区三区黄色| 欧美精品免费在线| 亚洲精选中文字幕| 亚洲综合二区| 国产伦精品一区二区三| 欧美亚洲三区| 欧美96在线丨欧| 亚洲精品久久7777| 欧美日韩无遮挡| 亚洲综合色自拍一区| 久久国产精品毛片| 伊人蜜桃色噜噜激情综合| 老司机午夜精品视频在线观看| 欧美激情欧美激情在线五月| av成人老司机| 国产精品一区毛片| 久久亚裔精品欧美| 亚洲乱亚洲高清| 欧美一级视频精品观看| 伊人久久婷婷| 欧美激情一区二区三区蜜桃视频| 日韩天堂av| 久久九九热re6这里有精品 | 国产在线国偷精品产拍免费yy| 久久久久久久国产| 亚洲精品一二| 久久久久成人精品| 一本色道久久| 国产综合久久久久久| 欧美激情精品久久久久久免费印度| 一本色道久久综合亚洲91| 久久久久国产一区二区| 99在线|亚洲一区二区| 国产欧美日韩亚州综合| 米奇777超碰欧美日韩亚洲| 亚洲午夜精品福利| 欧美国产综合| 欧美一区二区在线播放| 亚洲精品一区在线观看| 国产视频一区欧美| 欧美日韩成人一区二区| 久久久综合激的五月天| 亚洲一区在线视频| 亚洲激情偷拍| 久久在线免费观看| 午夜精品一区二区三区在线播放 | 欧美亚洲网站| 日韩亚洲成人av在线| 黄色一区二区三区四区| 国产精品成人va在线观看| 麻豆成人在线观看| 欧美亚洲一区二区在线观看| 日韩午夜精品视频| 亚洲国产精品欧美一二99| 久久久噜噜噜久久中文字免| 亚洲综合不卡| 日韩亚洲欧美高清| 亚洲第一免费播放区| 国产午夜精品全部视频播放 | 狠狠久久婷婷| 国产乱人伦精品一区二区 | 一本色道久久88亚洲综合88| 亚洲国产视频一区| 在线观看成人av电影| 国产一区二区三区四区在线观看 | 午夜视频一区在线观看| 中日韩高清电影网| 一本久道久久综合中文字幕| 亚洲激情视频网站| 亚洲国产毛片完整版| 亚洲成色精品| 在线日韩中文字幕| 在线精品观看| 亚洲国产网站| 最新中文字幕一区二区三区| 亚洲高清自拍| 亚洲国产日韩欧美在线99| 亚洲第一二三四五区| 在线看日韩欧美| 亚洲国产视频一区| 日韩午夜在线电影| 中文日韩电影网站| 亚洲免费影视第一页| 亚洲深夜福利| 香蕉成人伊视频在线观看| 西西人体一区二区| 久久蜜桃精品| 欧美暴力喷水在线| 亚洲二区视频| 99精品黄色片免费大全| 亚洲综合第一| 欧美中文字幕在线| 亚洲看片免费| 一区二区三区日韩精品| 午夜久久tv| 久久人人97超碰精品888| 女女同性女同一区二区三区91| 欧美精品免费在线| 国产精品每日更新| 一区二区三区在线观看欧美| 亚洲国产欧美一区| 亚洲一区二区三区在线视频| 性欧美大战久久久久久久免费观看| 欧美一区二区在线观看| 嫩草国产精品入口| 日韩亚洲一区在线播放| 午夜精品区一区二区三| 久久综合久久综合这里只有精品 | 亚洲精品综合精品自拍| 亚洲欧美精品| 免费成人在线观看视频| 日韩视频免费观看高清在线视频| 午夜精品美女自拍福到在线 | 欧美日韩一区二区在线| 国产一区二区三区视频在线观看| 91久久在线| 久久国产精品久久久久久| 欧美顶级艳妇交换群宴| 亚洲图色在线| 免费亚洲电影| 国产精品自拍三区| 亚洲精品综合精品自拍| 久久久噜噜噜久久久| 亚洲精品欧美精品| 久久九九热re6这里有精品| 欧美视频官网| 亚洲高清中文字幕| 久久国产主播| 99国产精品久久久久久久久久| 久久经典综合| 国产女主播视频一区二区| 亚洲精选视频在线| 免费观看成人www动漫视频| 在线视频欧美一区| 欧美国产高清| 黄色成人在线网址| 欧美一区二区三区四区在线观看| 91久久夜色精品国产九色| 久久国产精品99国产精| 国产精品美女黄网| 这里只有精品在线播放| 欧美国产视频在线| 久久精品在线播放| 国产麻豆综合| 午夜精品久久久久久久99樱桃| 亚洲精品影院在线观看| 麻豆乱码国产一区二区三区| 国产亚洲一区二区三区在线播放| 亚洲欧美一区二区原创| 99综合视频| 欧美日韩在线一区| 99亚洲一区二区| 亚洲激情黄色| 欧美激情精品久久久久久黑人 | 久久se精品一区精品二区| 一区二区精品在线| 欧美日韩国产a| 99精品热视频只有精品10| 亚洲二区视频| 欧美国产精品| 日韩一区二区精品| 亚洲精选视频在线| 欧美色大人视频| 亚洲性感美女99在线| 亚洲深夜福利在线| 国产精品视频999| 欧美在线一二三区| 欧美一区二区三区免费视| 国产精品香蕉在线观看| 久久激情中文|