hdu 5012 bfs 康托展开

Dice

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 491    Accepted Submission(s): 290

Problem Description

There are 2 special dices on the table. On each face of the dice, a distinct number was written. Consider a1.a2,a3,a4,a5,a6 to be numbers written on top face, bottom face, left face, right face, front face and back face of dice A. Similarly, consider b1.b2,b3,b4,b5,b6 to be numbers on specific faces of dice B. It’s guaranteed that all numbers written on dices are integers no smaller than 1 and no more than 6 while ai ≠ aj and bi ≠ bj for all i ≠ j. Specially, sum of numbers on opposite faces may not be 7.
   At the beginning, the two dices may face different(which means there exist some i, ai ≠ bi). Ddy wants to make the two dices look the same from all directions(which means for all i, ai = bi) only by the following four rotation operations.(Please read the picture for more information)   Now Ddy wants to calculate the minimal steps that he has to take to achieve his goal.

Input

There are multiple test cases. Please process till EOF.
   For each case, the first line consists of six integers a1,a2,a3,a4,a5,a6, representing the numbers on dice A.
   The second line consists of six integers b1,b2,b3,b4,b5,b6, representing the numbers on dice B.

Output

For each test case, print a line with a number representing the answer. If there’s no way to make two dices exactly the same, output -1.

Sample Input

1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 5 6 4 3
1 2 3 4 5 6
1 4 2 5 3 6

Sample Output

0
3
-1

Source

2014 ACM/ICPC Asia Regional Xi‘an Online

Recommend

hujie   |   We have carefully selected several similar problems for you:  5017 5016 5014 5013 5011

卜神的代码

为了测试康托展开, 文中注释部分是卜神原来的代码,也是ac的。

  1 #include <iostream>
  2 #include <cstdio>
  3 #include <cstring>
  4 #include <queue>
  5 #include <algorithm>
  6 using namespace std;
  7
  8 typedef long long ll;
  9
 10 const int CANTO = 100010;
 11 const int LEN = 6;
 12
 13 int fac[10];
 14 bool vis[CANTO];
 15 int begin, end;
 16 struct Sit
 17 {
 18     int arr[LEN];
 19     int step;
 20 };
 21
 22 void makefac()
 23 {
 24     fac[0] = fac[1] = 1;
 25     for(int i = 2; i <= 8; i++)
 26         fac[i] = i * fac[i-1];
 27 }
 28
 29 int canto(int arr[])
 30 {
 31     int res = 0;
 32     for(int i = 0; i < LEN; i++){
 33         int num=0;
 34         for(int j=i+1;j<LEN;j++)
 35             if(arr[j]<arr[i]) num++;
 36         res+=(num*fac[LEN-i-1]);
 37     }
 38     //    res += fac[i+2] * arr[i];
 39     return res;
 40 }
 41
 42 int bfs(Sit src)
 43 {
 44     queue <Sit> q;
 45     Sit now, tmp;
 46     int t, c;
 47     vis[begin] = true;
 48     q.push(src);
 49     while(!q.empty())
 50     {
 51         now = q.front();
 52         q.pop();
 53         tmp = now, tmp.step++; t = tmp.arr[0];
 54         tmp.arr[0] = tmp.arr[3];
 55         tmp.arr[3] = tmp.arr[1];
 56         tmp.arr[1] = tmp.arr[2];
 57         tmp.arr[2] = t;
 58         c = canto(tmp.arr);
 59         if (c == end){
 60             return tmp.step;
 61         }
 62         if (!vis[c]){
 63             vis[c] = true;
 64             q.push(tmp);
 65         }
 66         tmp = now, tmp.step++; t = tmp.arr[0];
 67         tmp.arr[0] = tmp.arr[2];
 68         tmp.arr[2] = tmp.arr[1];
 69         tmp.arr[1] = tmp.arr[3];
 70         tmp.arr[3] = t;
 71         c = canto(tmp.arr);
 72         if (c == end){
 73             return tmp.step;
 74         }
 75         if (!vis[c]){
 76             vis[c] = true;
 77             q.push(tmp);
 78         }
 79
 80         tmp = now, tmp.step++; t = tmp.arr[1];
 81         tmp.arr[1] = tmp.arr[4];
 82         tmp.arr[4] = tmp.arr[0];
 83         tmp.arr[0] = tmp.arr[5];
 84         tmp.arr[5] = t;
 85         c = canto(tmp.arr);
 86         if (c == end){
 87             return tmp.step;
 88         }
 89         if (!vis[c]){
 90             vis[c] = true;
 91             q.push(tmp);
 92         }
 93
 94         tmp = now, tmp.step++; t = tmp.arr[1];
 95         tmp.arr[1] = tmp.arr[5];
 96         tmp.arr[5] = tmp.arr[0];
 97         tmp.arr[0] = tmp.arr[4];
 98         tmp.arr[4] = t;
 99         c = canto(tmp.arr);
100         if (c == end){
101             return tmp.step;
102         }
103         if (!vis[c]){
104             vis[c] = true;
105             q.push(tmp);
106         }
107     }
108     return -1;
109 }
110
111 int main()
112 {
113     makefac();
114     int src[LEN];
115     int dst[LEN];
116     while(~scanf("%d", src)){
117         memset(vis, 0, sizeof(vis));
118         for(int i = 1; i < LEN; i++)
119             scanf("%d", src+i);
120         for(int i = 0; i < LEN; i++)
121             scanf("%d", dst+i);
122         begin = canto(src);
123         end = canto(dst);
124         if (begin == end){
125             printf("0\n");
126             continue;
127         }
128         Sit x;
129         memcpy(x.arr, src, LEN*sizeof(int));
130         x.step = 0;
131         printf("%d\n", bfs(x));
132     }
133     return 0;
134 }

经过以下代码验证,网上的代码,康托展开是连续值,卜神的只是起到了展开作用,不过代码更加简洁。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <queue>
 5 #include <algorithm>
 6 using namespace std;
 7
 8 typedef long long ll;
 9
10 const int CANTO = 100010;
11 const int LEN = 6;
12
13 int fac[10];
14 int a[LEN];
15
16 void makefac()
17 {
18     fac[0] = fac[1] = 1;
19     for(int i = 2; i <= 8; i++)
20         fac[i] = i * fac[i-1];
21 }
22
23 int canto(int arr[])
24 {
25     int res = 0;
26     for(int i = 0; i < LEN; i++){
27         int num=0;
28         for(int j=i+1;j<LEN;j++)
29             if(arr[j]<arr[i]) num++;
30         res+=(num*fac[LEN-i-1]);
31     }
32     //    res += fac[i+2] * arr[i];
33     return res;
34 }
35
36 int canto2(int arr[])
37 {
38     int res = 0;
39     for(int i = 0; i < LEN; i++){
40      //   int num=0;
41      //   for(int j=i+1;j<LEN;j++)
42        //     if(arr[j]<arr[i]) num++;
43       //  res+=(num*fac[LEN-i-1]);
44       res += fac[i+2] * arr[i];
45     }
46     //    res += fac[i+2] * arr[i];
47     return res;
48 }
49
50
51 int main()
52 {
53     freopen("data.out","w",stdout);
54     makefac();
55     a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;a[5]=6;
56     printf("a=%d %d %d %d %d %d ",a[0],a[1],a[2],a[3],a[4],a[5]);
57     printf("can=%d %d\n",canto(a),canto2(a));
58     while(next_permutation(a+0, a + LEN)  ){
59             printf("a=%d %d %d %d %d %d ",a[0],a[1],a[2],a[3],a[4],a[5]);
60         printf("can=%d %d\n",canto(a),canto2(a));
61     }
62     return 0;
63 }

  1 a=1 2 3 4 5 6 can=0 34406
  2 a=1 2 3 4 6 5 can=1 30086
  3 a=1 2 3 5 4 6 can=2 33806
  4 a=1 2 3 5 6 4 can=3 25166
  5 a=1 2 3 6 4 5 can=4 28886
  6 a=1 2 3 6 5 4 can=5 24566
  7 a=1 2 4 3 5 6 can=6 34310
  8 a=1 2 4 3 6 5 can=7 29990
  9 a=1 2 4 5 3 6 can=8 33110
 10 a=1 2 4 5 6 3 can=9 20150
 11 a=1 2 4 6 3 5 can=10 28190
 12 a=1 2 4 6 5 3 can=11 19550
 13 a=1 2 5 3 4 6 can=12 33614
 14 a=1 2 5 3 6 4 can=13 24974
 15 a=1 2 5 4 3 6 can=14 33014
 16 a=1 2 5 4 6 3 can=15 20054
 17 a=1 2 5 6 3 4 can=16 23174
 18 a=1 2 5 6 4 3 can=17 18854
 19 a=1 2 6 3 4 5 can=18 28598
 20 a=1 2 6 3 5 4 can=19 24278
 21 a=1 2 6 4 3 5 can=20 27998
 22 a=1 2 6 4 5 3 can=21 19358
 23 a=1 2 6 5 3 4 can=22 23078
 24 a=1 2 6 5 4 3 can=23 18758
 25 a=1 3 2 4 5 6 can=24 34388
 26 a=1 3 2 4 6 5 can=25 30068
 27 a=1 3 2 5 4 6 can=26 33788
 28 a=1 3 2 5 6 4 can=27 25148
 29 a=1 3 2 6 4 5 can=28 28868
 30 a=1 3 2 6 5 4 can=29 24548
 31 a=1 3 4 2 5 6 can=30 34196
 32 a=1 3 4 2 6 5 can=31 29876
 33 a=1 3 4 5 2 6 can=32 32396
 34 a=1 3 4 5 6 2 can=33 15116
 35 a=1 3 4 6 2 5 can=34 27476
 36 a=1 3 4 6 5 2 can=35 14516
 37 a=1 3 5 2 4 6 can=36 33500
 38 a=1 3 5 2 6 4 can=37 24860
 39 a=1 3 5 4 2 6 can=38 32300
 40 a=1 3 5 4 6 2 can=39 15020
 41 a=1 3 5 6 2 4 can=40 22460
 42 a=1 3 5 6 4 2 can=41 13820
 43 a=1 3 6 2 4 5 can=42 28484
 44 a=1 3 6 2 5 4 can=43 24164
 45 a=1 3 6 4 2 5 can=44 27284
 46 a=1 3 6 4 5 2 can=45 14324
 47 a=1 3 6 5 2 4 can=46 22364
 48 a=1 3 6 5 4 2 can=47 13724
 49 a=1 4 2 3 5 6 can=48 34274
 50 a=1 4 2 3 6 5 can=49 29954
 51 a=1 4 2 5 3 6 can=50 33074
 52 a=1 4 2 5 6 3 can=51 20114
 53 a=1 4 2 6 3 5 can=52 28154
 54 a=1 4 2 6 5 3 can=53 19514
 55 a=1 4 3 2 5 6 can=54 34178
 56 a=1 4 3 2 6 5 can=55 29858
 57 a=1 4 3 5 2 6 can=56 32378
 58 a=1 4 3 5 6 2 can=57 15098
 59 a=1 4 3 6 2 5 can=58 27458
 60 a=1 4 3 6 5 2 can=59 14498
 61 a=1 4 5 2 3 6 can=60 32786
 62 a=1 4 5 2 6 3 can=61 19826
 63 a=1 4 5 3 2 6 can=62 32186
 64 a=1 4 5 3 6 2 can=63 14906
 65 a=1 4 5 6 2 3 can=64 17426
 66 a=1 4 5 6 3 2 can=65 13106
 67 a=1 4 6 2 3 5 can=66 27770
 68 a=1 4 6 2 5 3 can=67 19130
 69 a=1 4 6 3 2 5 can=68 27170
 70 a=1 4 6 3 5 2 can=69 14210
 71 a=1 4 6 5 2 3 can=70 17330
 72 a=1 4 6 5 3 2 can=71 13010
 73 a=1 5 2 3 4 6 can=72 33560
 74 a=1 5 2 3 6 4 can=73 24920
 75 a=1 5 2 4 3 6 can=74 32960
 76 a=1 5 2 4 6 3 can=75 20000
 77 a=1 5 2 6 3 4 can=76 23120
 78 a=1 5 2 6 4 3 can=77 18800
 79 a=1 5 3 2 4 6 can=78 33464
 80 a=1 5 3 2 6 4 can=79 24824
 81 a=1 5 3 4 2 6 can=80 32264
 82 a=1 5 3 4 6 2 can=81 14984
 83 a=1 5 3 6 2 4 can=82 22424
 84 a=1 5 3 6 4 2 can=83 13784
 85 a=1 5 4 2 3 6 can=84 32768
 86 a=1 5 4 2 6 3 can=85 19808
 87 a=1 5 4 3 2 6 can=86 32168
 88 a=1 5 4 3 6 2 can=87 14888
 89 a=1 5 4 6 2 3 can=88 17408
 90 a=1 5 4 6 3 2 can=89 13088
 91 a=1 5 6 2 3 4 can=90 22736
 92 a=1 5 6 2 4 3 can=91 18416
 93 a=1 5 6 3 2 4 can=92 22136
 94 a=1 5 6 3 4 2 can=93 13496
 95 a=1 5 6 4 2 3 can=94 17216
 96 a=1 5 6 4 3 2 can=95 12896
 97 a=1 6 2 3 4 5 can=96 28526
 98 a=1 6 2 3 5 4 can=97 24206
 99 a=1 6 2 4 3 5 can=98 27926
100 a=1 6 2 4 5 3 can=99 19286
101 a=1 6 2 5 3 4 can=100 23006
102 a=1 6 2 5 4 3 can=101 18686
103 a=1 6 3 2 4 5 can=102 28430
104 a=1 6 3 2 5 4 can=103 24110
105 a=1 6 3 4 2 5 can=104 27230
106 a=1 6 3 4 5 2 can=105 14270
107 a=1 6 3 5 2 4 can=106 22310
108 a=1 6 3 5 4 2 can=107 13670
109 a=1 6 4 2 3 5 can=108 27734
110 a=1 6 4 2 5 3 can=109 19094
111 a=1 6 4 3 2 5 can=110 27134
112 a=1 6 4 3 5 2 can=111 14174
113 a=1 6 4 5 2 3 can=112 17294
114 a=1 6 4 5 3 2 can=113 12974
115 a=1 6 5 2 3 4 can=114 22718
116 a=1 6 5 2 4 3 can=115 18398
117 a=1 6 5 3 2 4 can=116 22118
118 a=1 6 5 3 4 2 can=117 13478
119 a=1 6 5 4 2 3 can=118 17198
120 a=1 6 5 4 3 2 can=119 12878
121 a=2 1 3 4 5 6 can=120 34402
122 a=2 1 3 4 6 5 can=121 30082
123 a=2 1 3 5 4 6 can=122 33802
124 a=2 1 3 5 6 4 can=123 25162
125 a=2 1 3 6 4 5 can=124 28882
126 a=2 1 3 6 5 4 can=125 24562
127 a=2 1 4 3 5 6 can=126 34306
128 a=2 1 4 3 6 5 can=127 29986
129 a=2 1 4 5 3 6 can=128 33106
130 a=2 1 4 5 6 3 can=129 20146
131 a=2 1 4 6 3 5 can=130 28186
132 a=2 1 4 6 5 3 can=131 19546
133 a=2 1 5 3 4 6 can=132 33610
134 a=2 1 5 3 6 4 can=133 24970
135 a=2 1 5 4 3 6 can=134 33010
136 a=2 1 5 4 6 3 can=135 20050
137 a=2 1 5 6 3 4 can=136 23170
138 a=2 1 5 6 4 3 can=137 18850
139 a=2 1 6 3 4 5 can=138 28594
140 a=2 1 6 3 5 4 can=139 24274
141 a=2 1 6 4 3 5 can=140 27994
142 a=2 1 6 4 5 3 can=141 19354
143 a=2 1 6 5 3 4 can=142 23074
144 a=2 1 6 5 4 3 can=143 18754
145 a=2 3 1 4 5 6 can=144 34366
146 a=2 3 1 4 6 5 can=145 30046
147 a=2 3 1 5 4 6 can=146 33766
148 a=2 3 1 5 6 4 can=147 25126
149 a=2 3 1 6 4 5 can=148 28846
150 a=2 3 1 6 5 4 can=149 24526
151 a=2 3 4 1 5 6 can=150 34078
152 a=2 3 4 1 6 5 can=151 29758
153 a=2 3 4 5 1 6 can=152 31678
154 a=2 3 4 5 6 1 can=153 10078
155 a=2 3 4 6 1 5 can=154 26758
156 a=2 3 4 6 5 1 can=155 9478
157 a=2 3 5 1 4 6 can=156 33382
158 a=2 3 5 1 6 4 can=157 24742
159 a=2 3 5 4 1 6 can=158 31582
160 a=2 3 5 4 6 1 can=159 9982
161 a=2 3 5 6 1 4 can=160 21742
162 a=2 3 5 6 4 1 can=161 8782
163 a=2 3 6 1 4 5 can=162 28366
164 a=2 3 6 1 5 4 can=163 24046
165 a=2 3 6 4 1 5 can=164 26566
166 a=2 3 6 4 5 1 can=165 9286
167 a=2 3 6 5 1 4 can=166 21646
168 a=2 3 6 5 4 1 can=167 8686
169 a=2 4 1 3 5 6 can=168 34252
170 a=2 4 1 3 6 5 can=169 29932
171 a=2 4 1 5 3 6 can=170 33052
172 a=2 4 1 5 6 3 can=171 20092
173 a=2 4 1 6 3 5 can=172 28132
174 a=2 4 1 6 5 3 can=173 19492
175 a=2 4 3 1 5 6 can=174 34060
176 a=2 4 3 1 6 5 can=175 29740
177 a=2 4 3 5 1 6 can=176 31660
178 a=2 4 3 5 6 1 can=177 10060
179 a=2 4 3 6 1 5 can=178 26740
180 a=2 4 3 6 5 1 can=179 9460
181 a=2 4 5 1 3 6 can=180 32668
182 a=2 4 5 1 6 3 can=181 19708
183 a=2 4 5 3 1 6 can=182 31468
184 a=2 4 5 3 6 1 can=183 9868
185 a=2 4 5 6 1 3 can=184 16708
186 a=2 4 5 6 3 1 can=185 8068
187 a=2 4 6 1 3 5 can=186 27652
188 a=2 4 6 1 5 3 can=187 19012
189 a=2 4 6 3 1 5 can=188 26452
190 a=2 4 6 3 5 1 can=189 9172
191 a=2 4 6 5 1 3 can=190 16612
192 a=2 4 6 5 3 1 can=191 7972
193 a=2 5 1 3 4 6 can=192 33538
194 a=2 5 1 3 6 4 can=193 24898
195 a=2 5 1 4 3 6 can=194 32938
196 a=2 5 1 4 6 3 can=195 19978
197 a=2 5 1 6 3 4 can=196 23098
198 a=2 5 1 6 4 3 can=197 18778
199 a=2 5 3 1 4 6 can=198 33346
200 a=2 5 3 1 6 4 can=199 24706
201 a=2 5 3 4 1 6 can=200 31546
202 a=2 5 3 4 6 1 can=201 9946
203 a=2 5 3 6 1 4 can=202 21706
204 a=2 5 3 6 4 1 can=203 8746
205 a=2 5 4 1 3 6 can=204 32650
206 a=2 5 4 1 6 3 can=205 19690
207 a=2 5 4 3 1 6 can=206 31450
208 a=2 5 4 3 6 1 can=207 9850
209 a=2 5 4 6 1 3 can=208 16690
210 a=2 5 4 6 3 1 can=209 8050
211 a=2 5 6 1 3 4 can=210 22618
212 a=2 5 6 1 4 3 can=211 18298
213 a=2 5 6 3 1 4 can=212 21418
214 a=2 5 6 3 4 1 can=213 8458
215 a=2 5 6 4 1 3 can=214 16498
216 a=2 5 6 4 3 1 can=215 7858
217 a=2 6 1 3 4 5 can=216 28504
218 a=2 6 1 3 5 4 can=217 24184
219 a=2 6 1 4 3 5 can=218 27904
220 a=2 6 1 4 5 3 can=219 19264
221 a=2 6 1 5 3 4 can=220 22984
222 a=2 6 1 5 4 3 can=221 18664
223 a=2 6 3 1 4 5 can=222 28312
224 a=2 6 3 1 5 4 can=223 23992
225 a=2 6 3 4 1 5 can=224 26512
226 a=2 6 3 4 5 1 can=225 9232
227 a=2 6 3 5 1 4 can=226 21592
228 a=2 6 3 5 4 1 can=227 8632
229 a=2 6 4 1 3 5 can=228 27616
230 a=2 6 4 1 5 3 can=229 18976
231 a=2 6 4 3 1 5 can=230 26416
232 a=2 6 4 3 5 1 can=231 9136
233 a=2 6 4 5 1 3 can=232 16576
234 a=2 6 4 5 3 1 can=233 7936
235 a=2 6 5 1 3 4 can=234 22600
236 a=2 6 5 1 4 3 can=235 18280
237 a=2 6 5 3 1 4 can=236 21400
238 a=2 6 5 3 4 1 can=237 8440
239 a=2 6 5 4 1 3 can=238 16480
240 a=2 6 5 4 3 1 can=239 7840
241 a=3 1 2 4 5 6 can=240 34380
242 a=3 1 2 4 6 5 can=241 30060
243 a=3 1 2 5 4 6 can=242 33780
244 a=3 1 2 5 6 4 can=243 25140
245 a=3 1 2 6 4 5 can=244 28860
246 a=3 1 2 6 5 4 can=245 24540
247 a=3 1 4 2 5 6 can=246 34188
248 a=3 1 4 2 6 5 can=247 29868
249 a=3 1 4 5 2 6 can=248 32388
250 a=3 1 4 5 6 2 can=249 15108
251 a=3 1 4 6 2 5 can=250 27468
252 a=3 1 4 6 5 2 can=251 14508
253 a=3 1 5 2 4 6 can=252 33492
254 a=3 1 5 2 6 4 can=253 24852
255 a=3 1 5 4 2 6 can=254 32292
256 a=3 1 5 4 6 2 can=255 15012
257 a=3 1 5 6 2 4 can=256 22452
258 a=3 1 5 6 4 2 can=257 13812
259 a=3 1 6 2 4 5 can=258 28476
260 a=3 1 6 2 5 4 can=259 24156
261 a=3 1 6 4 2 5 can=260 27276
262 a=3 1 6 4 5 2 can=261 14316
263 a=3 1 6 5 2 4 can=262 22356
264 a=3 1 6 5 4 2 can=263 13716
265 a=3 2 1 4 5 6 can=264 34362
266 a=3 2 1 4 6 5 can=265 30042
267 a=3 2 1 5 4 6 can=266 33762
268 a=3 2 1 5 6 4 can=267 25122
269 a=3 2 1 6 4 5 can=268 28842
270 a=3 2 1 6 5 4 can=269 24522
271 a=3 2 4 1 5 6 can=270 34074
272 a=3 2 4 1 6 5 can=271 29754
273 a=3 2 4 5 1 6 can=272 31674
274 a=3 2 4 5 6 1 can=273 10074
275 a=3 2 4 6 1 5 can=274 26754
276 a=3 2 4 6 5 1 can=275 9474
277 a=3 2 5 1 4 6 can=276 33378
278 a=3 2 5 1 6 4 can=277 24738
279 a=3 2 5 4 1 6 can=278 31578
280 a=3 2 5 4 6 1 can=279 9978
281 a=3 2 5 6 1 4 can=280 21738
282 a=3 2 5 6 4 1 can=281 8778
283 a=3 2 6 1 4 5 can=282 28362
284 a=3 2 6 1 5 4 can=283 24042
285 a=3 2 6 4 1 5 can=284 26562
286 a=3 2 6 4 5 1 can=285 9282
287 a=3 2 6 5 1 4 can=286 21642
288 a=3 2 6 5 4 1 can=287 8682
289 a=3 4 1 2 5 6 can=288 34134
290 a=3 4 1 2 6 5 can=289 29814
291 a=3 4 1 5 2 6 can=290 32334
292 a=3 4 1 5 6 2 can=291 15054
293 a=3 4 1 6 2 5 can=292 27414
294 a=3 4 1 6 5 2 can=293 14454
295 a=3 4 2 1 5 6 can=294 34038
296 a=3 4 2 1 6 5 can=295 29718
297 a=3 4 2 5 1 6 can=296 31638
298 a=3 4 2 5 6 1 can=297 10038
299 a=3 4 2 6 1 5 can=298 26718
300 a=3 4 2 6 5 1 can=299 9438
301 a=3 4 5 1 2 6 can=300 31950
302 a=3 4 5 1 6 2 can=301 14670
303 a=3 4 5 2 1 6 can=302 31350
304 a=3 4 5 2 6 1 can=303 9750
305 a=3 4 5 6 1 2 can=304 11670
306 a=3 4 5 6 2 1 can=305 7350
307 a=3 4 6 1 2 5 can=306 26934
308 a=3 4 6 1 5 2 can=307 13974
309 a=3 4 6 2 1 5 can=308 26334
310 a=3 4 6 2 5 1 can=309 9054
311 a=3 4 6 5 1 2 can=310 11574
312 a=3 4 6 5 2 1 can=311 7254
313 a=3 5 1 2 4 6 can=312 33420
314 a=3 5 1 2 6 4 can=313 24780
315 a=3 5 1 4 2 6 can=314 32220
316 a=3 5 1 4 6 2 can=315 14940
317 a=3 5 1 6 2 4 can=316 22380
318 a=3 5 1 6 4 2 can=317 13740
319 a=3 5 2 1 4 6 can=318 33324
320 a=3 5 2 1 6 4 can=319 24684
321 a=3 5 2 4 1 6 can=320 31524
322 a=3 5 2 4 6 1 can=321 9924
323 a=3 5 2 6 1 4 can=322 21684
324 a=3 5 2 6 4 1 can=323 8724
325 a=3 5 4 1 2 6 can=324 31932
326 a=3 5 4 1 6 2 can=325 14652
327 a=3 5 4 2 1 6 can=326 31332
328 a=3 5 4 2 6 1 can=327 9732
329 a=3 5 4 6 1 2 can=328 11652
330 a=3 5 4 6 2 1 can=329 7332
331 a=3 5 6 1 2 4 can=330 21900
332 a=3 5 6 1 4 2 can=331 13260
333 a=3 5 6 2 1 4 can=332 21300
334 a=3 5 6 2 4 1 can=333 8340
335 a=3 5 6 4 1 2 can=334 11460
336 a=3 5 6 4 2 1 can=335 7140
337 a=3 6 1 2 4 5 can=336 28386
338 a=3 6 1 2 5 4 can=337 24066
339 a=3 6 1 4 2 5 can=338 27186
340 a=3 6 1 4 5 2 can=339 14226
341 a=3 6 1 5 2 4 can=340 22266
342 a=3 6 1 5 4 2 can=341 13626
343 a=3 6 2 1 4 5 can=342 28290
344 a=3 6 2 1 5 4 can=343 23970
345 a=3 6 2 4 1 5 can=344 26490
346 a=3 6 2 4 5 1 can=345 9210
347 a=3 6 2 5 1 4 can=346 21570
348 a=3 6 2 5 4 1 can=347 8610
349 a=3 6 4 1 2 5 can=348 26898
350 a=3 6 4 1 5 2 can=349 13938
351 a=3 6 4 2 1 5 can=350 26298
352 a=3 6 4 2 5 1 can=351 9018
353 a=3 6 4 5 1 2 can=352 11538
354 a=3 6 4 5 2 1 can=353 7218
355 a=3 6 5 1 2 4 can=354 21882
356 a=3 6 5 1 4 2 can=355 13242
357 a=3 6 5 2 1 4 can=356 21282
358 a=3 6 5 2 4 1 can=357 8322
359 a=3 6 5 4 1 2 can=358 11442
360 a=3 6 5 4 2 1 can=359 7122
361 a=4 1 2 3 5 6 can=360 34262
362 a=4 1 2 3 6 5 can=361 29942
363 a=4 1 2 5 3 6 can=362 33062
364 a=4 1 2 5 6 3 can=363 20102
365 a=4 1 2 6 3 5 can=364 28142
366 a=4 1 2 6 5 3 can=365 19502
367 a=4 1 3 2 5 6 can=366 34166
368 a=4 1 3 2 6 5 can=367 29846
369 a=4 1 3 5 2 6 can=368 32366
370 a=4 1 3 5 6 2 can=369 15086
371 a=4 1 3 6 2 5 can=370 27446
372 a=4 1 3 6 5 2 can=371 14486
373 a=4 1 5 2 3 6 can=372 32774
374 a=4 1 5 2 6 3 can=373 19814
375 a=4 1 5 3 2 6 can=374 32174
376 a=4 1 5 3 6 2 can=375 14894
377 a=4 1 5 6 2 3 can=376 17414
378 a=4 1 5 6 3 2 can=377 13094
379 a=4 1 6 2 3 5 can=378 27758
380 a=4 1 6 2 5 3 can=379 19118
381 a=4 1 6 3 2 5 can=380 27158
382 a=4 1 6 3 5 2 can=381 14198
383 a=4 1 6 5 2 3 can=382 17318
384 a=4 1 6 5 3 2 can=383 12998
385 a=4 2 1 3 5 6 can=384 34244
386 a=4 2 1 3 6 5 can=385 29924
387 a=4 2 1 5 3 6 can=386 33044
388 a=4 2 1 5 6 3 can=387 20084
389 a=4 2 1 6 3 5 can=388 28124
390 a=4 2 1 6 5 3 can=389 19484
391 a=4 2 3 1 5 6 can=390 34052
392 a=4 2 3 1 6 5 can=391 29732
393 a=4 2 3 5 1 6 can=392 31652
394 a=4 2 3 5 6 1 can=393 10052
395 a=4 2 3 6 1 5 can=394 26732
396 a=4 2 3 6 5 1 can=395 9452
397 a=4 2 5 1 3 6 can=396 32660
398 a=4 2 5 1 6 3 can=397 19700
399 a=4 2 5 3 1 6 can=398 31460
400 a=4 2 5 3 6 1 can=399 9860
401 a=4 2 5 6 1 3 can=400 16700
402 a=4 2 5 6 3 1 can=401 8060
403 a=4 2 6 1 3 5 can=402 27644
404 a=4 2 6 1 5 3 can=403 19004
405 a=4 2 6 3 1 5 can=404 26444
406 a=4 2 6 3 5 1 can=405 9164
407 a=4 2 6 5 1 3 can=406 16604
408 a=4 2 6 5 3 1 can=407 7964
409 a=4 3 1 2 5 6 can=408 34130
410 a=4 3 1 2 6 5 can=409 29810
411 a=4 3 1 5 2 6 can=410 32330
412 a=4 3 1 5 6 2 can=411 15050
413 a=4 3 1 6 2 5 can=412 27410
414 a=4 3 1 6 5 2 can=413 14450
415 a=4 3 2 1 5 6 can=414 34034
416 a=4 3 2 1 6 5 can=415 29714
417 a=4 3 2 5 1 6 can=416 31634
418 a=4 3 2 5 6 1 can=417 10034
419 a=4 3 2 6 1 5 can=418 26714
420 a=4 3 2 6 5 1 can=419 9434
421 a=4 3 5 1 2 6 can=420 31946
422 a=4 3 5 1 6 2 can=421 14666
423 a=4 3 5 2 1 6 can=422 31346
424 a=4 3 5 2 6 1 can=423 9746
425 a=4 3 5 6 1 2 can=424 11666
426 a=4 3 5 6 2 1 can=425 7346
427 a=4 3 6 1 2 5 can=426 26930
428 a=4 3 6 1 5 2 can=427 13970
429 a=4 3 6 2 1 5 can=428 26330
430 a=4 3 6 2 5 1 can=429 9050
431 a=4 3 6 5 1 2 can=430 11570
432 a=4 3 6 5 2 1 can=431 7250
433 a=4 5 1 2 3 6 can=432 32702
434 a=4 5 1 2 6 3 can=433 19742
435 a=4 5 1 3 2 6 can=434 32102
436 a=4 5 1 3 6 2 can=435 14822
437 a=4 5 1 6 2 3 can=436 17342
438 a=4 5 1 6 3 2 can=437 13022
439 a=4 5 2 1 3 6 can=438 32606
440 a=4 5 2 1 6 3 can=439 19646
441 a=4 5 2 3 1 6 can=440 31406
442 a=4 5 2 3 6 1 can=441 9806
443 a=4 5 2 6 1 3 can=442 16646
444 a=4 5 2 6 3 1 can=443 8006
445 a=4 5 3 1 2 6 can=444 31910
446 a=4 5 3 1 6 2 can=445 14630
447 a=4 5 3 2 1 6 can=446 31310
448 a=4 5 3 2 6 1 can=447 9710
449 a=4 5 3 6 1 2 can=448 11630
450 a=4 5 3 6 2 1 can=449 7310
451 a=4 5 6 1 2 3 can=450 16862
452 a=4 5 6 1 3 2 can=451 12542
453 a=4 5 6 2 1 3 can=452 16262
454 a=4 5 6 2 3 1 can=453 7622
455 a=4 5 6 3 1 2 can=454 11342
456 a=4 5 6 3 2 1 can=455 7022
457 a=4 6 1 2 3 5 can=456 27668
458 a=4 6 1 2 5 3 can=457 19028
459 a=4 6 1 3 2 5 can=458 27068
460 a=4 6 1 3 5 2 can=459 14108
461 a=4 6 1 5 2 3 can=460 17228
462 a=4 6 1 5 3 2 can=461 12908
463 a=4 6 2 1 3 5 can=462 27572
464 a=4 6 2 1 5 3 can=463 18932
465 a=4 6 2 3 1 5 can=464 26372
466 a=4 6 2 3 5 1 can=465 9092
467 a=4 6 2 5 1 3 can=466 16532
468 a=4 6 2 5 3 1 can=467 7892
469 a=4 6 3 1 2 5 can=468 26876
470 a=4 6 3 1 5 2 can=469 13916
471 a=4 6 3 2 1 5 can=470 26276
472 a=4 6 3 2 5 1 can=471 8996
473 a=4 6 3 5 1 2 can=472 11516
474 a=4 6 3 5 2 1 can=473 7196
475 a=4 6 5 1 2 3 can=474 16844
476 a=4 6 5 1 3 2 can=475 12524
477 a=4 6 5 2 1 3 can=476 16244
478 a=4 6 5 2 3 1 can=477 7604
479 a=4 6 5 3 1 2 can=478 11324
480 a=4 6 5 3 2 1 can=479 7004
481 a=5 1 2 3 4 6 can=480 33544
482 a=5 1 2 3 6 4 can=481 24904
483 a=5 1 2 4 3 6 can=482 32944
484 a=5 1 2 4 6 3 can=483 19984
485 a=5 1 2 6 3 4 can=484 23104
486 a=5 1 2 6 4 3 can=485 18784
487 a=5 1 3 2 4 6 can=486 33448
488 a=5 1 3 2 6 4 can=487 24808
489 a=5 1 3 4 2 6 can=488 32248
490 a=5 1 3 4 6 2 can=489 14968
491 a=5 1 3 6 2 4 can=490 22408
492 a=5 1 3 6 4 2 can=491 13768
493 a=5 1 4 2 3 6 can=492 32752
494 a=5 1 4 2 6 3 can=493 19792
495 a=5 1 4 3 2 6 can=494 32152
496 a=5 1 4 3 6 2 can=495 14872
497 a=5 1 4 6 2 3 can=496 17392
498 a=5 1 4 6 3 2 can=497 13072
499 a=5 1 6 2 3 4 can=498 22720
500 a=5 1 6 2 4 3 can=499 18400
501 a=5 1 6 3 2 4 can=500 22120
502 a=5 1 6 3 4 2 can=501 13480
503 a=5 1 6 4 2 3 can=502 17200
504 a=5 1 6 4 3 2 can=503 12880
505 a=5 2 1 3 4 6 can=504 33526
506 a=5 2 1 3 6 4 can=505 24886
507 a=5 2 1 4 3 6 can=506 32926
508 a=5 2 1 4 6 3 can=507 19966
509 a=5 2 1 6 3 4 can=508 23086
510 a=5 2 1 6 4 3 can=509 18766
511 a=5 2 3 1 4 6 can=510 33334
512 a=5 2 3 1 6 4 can=511 24694
513 a=5 2 3 4 1 6 can=512 31534
514 a=5 2 3 4 6 1 can=513 9934
515 a=5 2 3 6 1 4 can=514 21694
516 a=5 2 3 6 4 1 can=515 8734
517 a=5 2 4 1 3 6 can=516 32638
518 a=5 2 4 1 6 3 can=517 19678
519 a=5 2 4 3 1 6 can=518 31438
520 a=5 2 4 3 6 1 can=519 9838
521 a=5 2 4 6 1 3 can=520 16678
522 a=5 2 4 6 3 1 can=521 8038
523 a=5 2 6 1 3 4 can=522 22606
524 a=5 2 6 1 4 3 can=523 18286
525 a=5 2 6 3 1 4 can=524 21406
526 a=5 2 6 3 4 1 can=525 8446
527 a=5 2 6 4 1 3 can=526 16486
528 a=5 2 6 4 3 1 can=527 7846
529 a=5 3 1 2 4 6 can=528 33412
530 a=5 3 1 2 6 4 can=529 24772
531 a=5 3 1 4 2 6 can=530 32212
532 a=5 3 1 4 6 2 can=531 14932
533 a=5 3 1 6 2 4 can=532 22372
534 a=5 3 1 6 4 2 can=533 13732
535 a=5 3 2 1 4 6 can=534 33316
536 a=5 3 2 1 6 4 can=535 24676
537 a=5 3 2 4 1 6 can=536 31516
538 a=5 3 2 4 6 1 can=537 9916
539 a=5 3 2 6 1 4 can=538 21676
540 a=5 3 2 6 4 1 can=539 8716
541 a=5 3 4 1 2 6 can=540 31924
542 a=5 3 4 1 6 2 can=541 14644
543 a=5 3 4 2 1 6 can=542 31324
544 a=5 3 4 2 6 1 can=543 9724
545 a=5 3 4 6 1 2 can=544 11644
546 a=5 3 4 6 2 1 can=545 7324
547 a=5 3 6 1 2 4 can=546 21892
548 a=5 3 6 1 4 2 can=547 13252
549 a=5 3 6 2 1 4 can=548 21292
550 a=5 3 6 2 4 1 can=549 8332
551 a=5 3 6 4 1 2 can=550 11452
552 a=5 3 6 4 2 1 can=551 7132
553 a=5 4 1 2 3 6 can=552 32698
554 a=5 4 1 2 6 3 can=553 19738
555 a=5 4 1 3 2 6 can=554 32098
556 a=5 4 1 3 6 2 can=555 14818
557 a=5 4 1 6 2 3 can=556 17338
558 a=5 4 1 6 3 2 can=557 13018
559 a=5 4 2 1 3 6 can=558 32602
560 a=5 4 2 1 6 3 can=559 19642
561 a=5 4 2 3 1 6 can=560 31402
562 a=5 4 2 3 6 1 can=561 9802
563 a=5 4 2 6 1 3 can=562 16642
564 a=5 4 2 6 3 1 can=563 8002
565 a=5 4 3 1 2 6 can=564 31906
566 a=5 4 3 1 6 2 can=565 14626
567 a=5 4 3 2 1 6 can=566 31306
568 a=5 4 3 2 6 1 can=567 9706
569 a=5 4 3 6 1 2 can=568 11626
570 a=5 4 3 6 2 1 can=569 7306
571 a=5 4 6 1 2 3 can=570 16858
572 a=5 4 6 1 3 2 can=571 12538
573 a=5 4 6 2 1 3 can=572 16258
574 a=5 4 6 2 3 1 can=573 7618
575 a=5 4 6 3 1 2 can=574 11338
576 a=5 4 6 3 2 1 can=575 7018
577 a=5 6 1 2 3 4 can=576 22630
578 a=5 6 1 2 4 3 can=577 18310
579 a=5 6 1 3 2 4 can=578 22030
580 a=5 6 1 3 4 2 can=579 13390
581 a=5 6 1 4 2 3 can=580 17110
582 a=5 6 1 4 3 2 can=581 12790
583 a=5 6 2 1 3 4 can=582 22534
584 a=5 6 2 1 4 3 can=583 18214
585 a=5 6 2 3 1 4 can=584 21334
586 a=5 6 2 3 4 1 can=585 8374
587 a=5 6 2 4 1 3 can=586 16414
588 a=5 6 2 4 3 1 can=587 7774
589 a=5 6 3 1 2 4 can=588 21838
590 a=5 6 3 1 4 2 can=589 13198
591 a=5 6 3 2 1 4 can=590 21238
592 a=5 6 3 2 4 1 can=591 8278
593 a=5 6 3 4 1 2 can=592 11398
594 a=5 6 3 4 2 1 can=593 7078
595 a=5 6 4 1 2 3 can=594 16822
596 a=5 6 4 1 3 2 can=595 12502
597 a=5 6 4 2 1 3 can=596 16222
598 a=5 6 4 2 3 1 can=597 7582
599 a=5 6 4 3 1 2 can=598 11302
600 a=5 6 4 3 2 1 can=599 6982
601 a=6 1 2 3 4 5 can=600 28506
602 a=6 1 2 3 5 4 can=601 24186
603 a=6 1 2 4 3 5 can=602 27906
604 a=6 1 2 4 5 3 can=603 19266
605 a=6 1 2 5 3 4 can=604 22986
606 a=6 1 2 5 4 3 can=605 18666
607 a=6 1 3 2 4 5 can=606 28410
608 a=6 1 3 2 5 4 can=607 24090
609 a=6 1 3 4 2 5 can=608 27210
610 a=6 1 3 4 5 2 can=609 14250
611 a=6 1 3 5 2 4 can=610 22290
612 a=6 1 3 5 4 2 can=611 13650
613 a=6 1 4 2 3 5 can=612 27714
614 a=6 1 4 2 5 3 can=613 19074
615 a=6 1 4 3 2 5 can=614 27114
616 a=6 1 4 3 5 2 can=615 14154
617 a=6 1 4 5 2 3 can=616 17274
618 a=6 1 4 5 3 2 can=617 12954
619 a=6 1 5 2 3 4 can=618 22698
620 a=6 1 5 2 4 3 can=619 18378
621 a=6 1 5 3 2 4 can=620 22098
622 a=6 1 5 3 4 2 can=621 13458
623 a=6 1 5 4 2 3 can=622 17178
624 a=6 1 5 4 3 2 can=623 12858
625 a=6 2 1 3 4 5 can=624 28488
626 a=6 2 1 3 5 4 can=625 24168
627 a=6 2 1 4 3 5 can=626 27888
628 a=6 2 1 4 5 3 can=627 19248
629 a=6 2 1 5 3 4 can=628 22968
630 a=6 2 1 5 4 3 can=629 18648
631 a=6 2 3 1 4 5 can=630 28296
632 a=6 2 3 1 5 4 can=631 23976
633 a=6 2 3 4 1 5 can=632 26496
634 a=6 2 3 4 5 1 can=633 9216
635 a=6 2 3 5 1 4 can=634 21576
636 a=6 2 3 5 4 1 can=635 8616
637 a=6 2 4 1 3 5 can=636 27600
638 a=6 2 4 1 5 3 can=637 18960
639 a=6 2 4 3 1 5 can=638 26400
640 a=6 2 4 3 5 1 can=639 9120
641 a=6 2 4 5 1 3 can=640 16560
642 a=6 2 4 5 3 1 can=641 7920
643 a=6 2 5 1 3 4 can=642 22584
644 a=6 2 5 1 4 3 can=643 18264
645 a=6 2 5 3 1 4 can=644 21384
646 a=6 2 5 3 4 1 can=645 8424
647 a=6 2 5 4 1 3 can=646 16464
648 a=6 2 5 4 3 1 can=647 7824
649 a=6 3 1 2 4 5 can=648 28374
650 a=6 3 1 2 5 4 can=649 24054
651 a=6 3 1 4 2 5 can=650 27174
652 a=6 3 1 4 5 2 can=651 14214
653 a=6 3 1 5 2 4 can=652 22254
654 a=6 3 1 5 4 2 can=653 13614
655 a=6 3 2 1 4 5 can=654 28278
656 a=6 3 2 1 5 4 can=655 23958
657 a=6 3 2 4 1 5 can=656 26478
658 a=6 3 2 4 5 1 can=657 9198
659 a=6 3 2 5 1 4 can=658 21558
660 a=6 3 2 5 4 1 can=659 8598
661 a=6 3 4 1 2 5 can=660 26886
662 a=6 3 4 1 5 2 can=661 13926
663 a=6 3 4 2 1 5 can=662 26286
664 a=6 3 4 2 5 1 can=663 9006
665 a=6 3 4 5 1 2 can=664 11526
666 a=6 3 4 5 2 1 can=665 7206
667 a=6 3 5 1 2 4 can=666 21870
668 a=6 3 5 1 4 2 can=667 13230
669 a=6 3 5 2 1 4 can=668 21270
670 a=6 3 5 2 4 1 can=669 8310
671 a=6 3 5 4 1 2 can=670 11430
672 a=6 3 5 4 2 1 can=671 7110
673 a=6 4 1 2 3 5 can=672 27660
674 a=6 4 1 2 5 3 can=673 19020
675 a=6 4 1 3 2 5 can=674 27060
676 a=6 4 1 3 5 2 can=675 14100
677 a=6 4 1 5 2 3 can=676 17220
678 a=6 4 1 5 3 2 can=677 12900
679 a=6 4 2 1 3 5 can=678 27564
680 a=6 4 2 1 5 3 can=679 18924
681 a=6 4 2 3 1 5 can=680 26364
682 a=6 4 2 3 5 1 can=681 9084
683 a=6 4 2 5 1 3 can=682 16524
684 a=6 4 2 5 3 1 can=683 7884
685 a=6 4 3 1 2 5 can=684 26868
686 a=6 4 3 1 5 2 can=685 13908
687 a=6 4 3 2 1 5 can=686 26268
688 a=6 4 3 2 5 1 can=687 8988
689 a=6 4 3 5 1 2 can=688 11508
690 a=6 4 3 5 2 1 can=689 7188
691 a=6 4 5 1 2 3 can=690 16836
692 a=6 4 5 1 3 2 can=691 12516
693 a=6 4 5 2 1 3 can=692 16236
694 a=6 4 5 2 3 1 can=693 7596
695 a=6 4 5 3 1 2 can=694 11316
696 a=6 4 5 3 2 1 can=695 6996
697 a=6 5 1 2 3 4 can=696 22626
698 a=6 5 1 2 4 3 can=697 18306
699 a=6 5 1 3 2 4 can=698 22026
700 a=6 5 1 3 4 2 can=699 13386
701 a=6 5 1 4 2 3 can=700 17106
702 a=6 5 1 4 3 2 can=701 12786
703 a=6 5 2 1 3 4 can=702 22530
704 a=6 5 2 1 4 3 can=703 18210
705 a=6 5 2 3 1 4 can=704 21330
706 a=6 5 2 3 4 1 can=705 8370
707 a=6 5 2 4 1 3 can=706 16410
708 a=6 5 2 4 3 1 can=707 7770
709 a=6 5 3 1 2 4 can=708 21834
710 a=6 5 3 1 4 2 can=709 13194
711 a=6 5 3 2 1 4 can=710 21234
712 a=6 5 3 2 4 1 can=711 8274
713 a=6 5 3 4 1 2 can=712 11394
714 a=6 5 3 4 2 1 can=713 7074
715 a=6 5 4 1 2 3 can=714 16818
716 a=6 5 4 1 3 2 can=715 12498
717 a=6 5 4 2 1 3 can=716 16218
718 a=6 5 4 2 3 1 can=717 7578
719 a=6 5 4 3 1 2 can=718 11298
720 a=6 5 4 3 2 1 can=719 6978

时间: 2024-11-15 00:21:11

hdu 5012 bfs 康托展开的相关文章

hdu 1430 (BFS 康托展开 或 map )

第一眼看到这题就直接BFS爆搜,第一发爆了内存,傻逼了忘标记了,然后就改,咋标记呢. 然后想到用map函数,就8!个不同的排列,换成字符串用map标记.然后又交一发果断超时,伤心,最恨超时,还不如来个wa算了. 然后卡着了,后来上网上搜了,要用康托展开,康托展开是什么鬼?然后学习了一下,就是个映射,感觉和map差不多. http://blog.csdn.net/zhongkeli/article/details/6966805这个学习一下康托展开. 其实本题的关键不是康托展开,而是置换. 以12

poj 1077 八数码(BFS+康托展开)

1 /* 2 题意:八数码问题,给出3*3的矩阵含1~8以及x,给出一个符合的解使得移动后的矩阵的顺序为1~8,最后为x 3 4 题解:BFS 5 需要用到康托展开来表示状态,不然数组无法完全表示所有状态,这样BFS就无法判断找不到解的情况(status 6 的0ms,0KB究竟是怎么做到的,简直不能想象=.=) 7 */ 8 #include <cstdio> 9 #include <cstring> 10 #include <queue> 11 #include &

HDU 1043 Eight(双向BFS+康托展开)

http://acm.hdu.edu.cn/showproblem.php?pid=1043 题意:给出一个八数码,求出到达指定状态的路径. 思路:路径寻找问题.在这道题里用到的知识点挺多的.第一次用双向BFS来做. ①双向BFS 在单向BFS的基础上,多建一个从终止状态开始搜索的队列,当然这个时候需要两个vis[]辅助数组,分别记录两个队列的访问情况,当两个队列相遇时即可终止循环. ②康托展开 X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[

【HDU - 1043】Eight(反向bfs+康托展开)

Eight Descriptions: 简单介绍一下八数码问题:在一个3×3的九宫格上,填有1~8八个数字,空余一个位置,例如下图: 1 2 3 4 5 6 7 8   在上图中,由于右下角位置是空的,你可以移动数字,比如可以将数字6下移一位: 1 2 3   1 2 3 4 5 6 → 4 5   7 8     7 8 6 或者将数字8右移一位: 1 2 3   1 2 3 4 5 6 → 4 5 6 7 8     7   8 1~8按顺序排列的情况称为"初始状态"(如最上方图)

hdu.1430.魔板(bfs + 康托展开)

魔板 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2170    Accepted Submission(s): 455 Problem Description 在魔方风靡全球之后不久,Rubik先生发明了它的简化版——魔板.魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示.任一时刻魔板的状态可用方块的颜

hdu 1043 Eight(康托展开,打表)

1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 typedef long long LL; 5 6 /** 7 学习:(1)康托展开的使用 8 (2)路径记录 9 ? A* 10 ? 双向bfs 11 */ 12 13 int t[9],s[9]; 14 bool vis[362880 + 10]; 15 char ans[362880 + 10][42]; 16 int fac[]={1,1

POJ 1077 Eight(bfs+康托展开)

Eight Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 41040   Accepted: 16901   Special Judge Description The 15-puzzle has been around for over 100 years; even if you don't know it by that name, you've seen it. It is constructed with 15

hdu 5012 bfs --- 慎用STL 比如MAP判重

http://acm.hdu.edu.cn/showproblem.php?pid=5012 发现一个问题 如果Sting s = '1'+'2'+'3'; s!="123"!!!!!!  而是有乱码 先贴一份自己的TLE 代码, 超时应该是因为: 1.cin 2.map判重 map find太花时间 3.string花时间 4.其实不用两个都旋转,只要旋转一个就行,这样可以省下很多时间 包括少用了make_pair pair的判重等等....哎  二笔了  太暴力了 #include

BFS+康托展开(洛谷1379 八数码难题)

在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变. 输入格式: 输入初试状态,一行九个数字,空格用0表示 输出格式: 只有一行,该行只有一个数字,表示从初始状态到目标状态需要的最少移动次数(测试数据中无特殊无法到达目标状态数据) 输入样例#1: 2831