真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SRM482-創(chuàng)新互聯(lián)

250ptSRM482

題意:給定n把鎖,第i輪每間隔i個打開一個木有打開的。問最后打開的事幾

專注于為中小企業(yè)提供網(wǎng)站制作、網(wǎng)站設(shè)計服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)回民免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

思路:直接vector模擬

code:

 1 #line 7 "LockersDivOne.cpp"
 2 #include 
 3 #include 
 4 #include 
 5 #include 
 6 #include 
 7 #include 
 8 #include 
 9 #include 
10 #include 
11 #include 
12 #include 
13 #include 
14 #include 
15 #include 
16 #include 
17 #include 
18 #include 
19 #include 
20 #include 
21 #include 
22 #include 
23 #include 
24 #include 
25 using namespace std;
26 
27 #define PB push_back
28 #define MP make_pair
29 
30 #define REP(i,n) for(i=0;i<(n);++i)
31 #define FOR(i,l,h) for(i=(l);i<=(h);++i)
32 #define FORD(i,h,l) for(i=(h);i>=(l);--i)
33 
34 typedef vector VI;
35 typedef vector VS;
36 typedef vector VD;
37 typedef long long LL;
38 typedef pair PII;
39 
40 class LockersDivOne
41 {
42 public:
43 int get(int n){
44               vector a, b;
45 for (int i = 0; i < n; ++i)
46                   a.push_back(i);
47 int res = 0;
48 for (int i = 2; ; ++i){
49 if (a.size() == 0) break;
50                     b.clear();
51 for (int j = 0; j < a.size(); j++)
52 if (j % i == 0) res = a[j] + 1;
53 else b.push_back(a[j]);
54                     a = b;
55               }
56 return res;
57             
58         }
59 int lastOpened(int N)
60         {
61   return get(N);
62         }
63 };
View Code

500pt

題意:A和B兩個人玩漢諾塔,其中A移動漢諾塔用最快的方法,移動的步數(shù)是2^n-1步,而B用的方法可以保證每種狀態(tài)恰好被訪問到一次,移動的步數(shù)是3^n-1。兩個人移動的偽代碼都給定,問第一個人移動K步后的configuration,按照第二個人的方法需要移動多少步。

思路:先算出最終的狀態(tài)。然后根據(jù)最終的狀態(tài)用遞歸算出答案。

code:

 1 #line 7 "HanoiGoodAndBad.cpp"
 2 #include 
 3 #include 
 4 #include 
 5 #include 
 6 #include 
 7 #include 
 8 #include 
 9 #include 
10 #include 
11 #include 
12 #include 
13 #include 
14 #include 
15 #include 
16 #include 
17 #include 
18 #include 
19 #include 
20 #include 
21 #include 
22 #include 
23 #include 
24 #include 
25 using namespace std;
26 
27 #define PB push_back
28 #define MP make_pair
29 
30 #define REP(i,n) for(i=0;i<(n);++i)
31 #define FOR(i,l,h) for(i=(l);i<=(h);++i)
32 #define FORD(i,h,l) for(i=(h);i>=(l);--i)
33 
34 typedef vector VI;
35 typedef vector VS;
36 typedef vector VD;
37 typedef long long LL;
38 typedef pair PII;
39 int thr[20];
40 
41 class HanoiGoodAndBad
42 {
43 public:
44 int dd, ans;
45 int H[3][25];
46 int top[3];
47 void solve_Dave(int a, int c, int b, int n){
48  if(n > 0){
49   if (dd == 0) return;
50                 solve_Dave(a, b, c, n-1);
51   if (dd == 0) return;
52                 H[c][++top[c]] = n;
53                 H[a][top[a]--] = 0;
54                 --dd;
55                 solve_Dave(b, c, a, n-1);
56             }
57         }
58 void solve_Earl(int a, int c, int b, int n){
59 if (n == 0) return;
60 int P = 0;
61 if (H[1][top[1]] == n) P = 1;
62 if (H[2][top[2]] == n) P = 2;
63               top[P]--;
64 if (P == c){ 
65                       ans += 2 * thr[n-1];
66                       solve_Earl(a, c, b, n-1);
67               }
68 if (P == b){ 
69                       ans += thr[n-1];
70                       solve_Earl(c, a, b, n-1);
71               }
72 if (P == a) solve_Earl(a, c, b, n-1);
73         }
74 int moves(int N, int Dave)
75         {
76              dd = Dave;
77              memset(top, 0, sizeof(top)); 
78              memset(H, 0, sizeof(H)); 
79   for (int i = N; i >= 1; --i)  H[0][++top[0]] = i;
80              solve_Dave(0, 2, 1, N);
81              ans = 0;
82   for (int i = 0; i < 3; ++i)
83 for (int j = 1; j <= top[i]/ 2; ++j)
84                     swap(H[i][j], H[i][top[i]-j+1]);
85              thr[0] = 1;
86   for (int i = 1; i <= 19; ++i) thr[i] = thr[i-1] * 3;
87              solve_Earl(0, 2, 1, N);
88   return ans;
89         }
90 };
View Code
網(wǎng)頁名稱:SRM482-創(chuàng)新互聯(lián)
地址分享:http://weahome.cn/article/shhsc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部