• <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>
            隨筆 - 97, 文章 - 22, 評論 - 81, 引用 - 0
            數(shù)據(jù)加載中……

            Pku 3134 Power Calculus (BFS)

            問題描述:
            給定初始的x,可以通過乘法將其變?yōu)閤^2,再變?yōu)閤^4,x^8,x^16,x^32,也可以用除法,x^31 = x^32 / x,但是操作數(shù)必須是已經(jīng)計(jì)算出來的數(shù),給定一個(gè)指數(shù),要求得到這個(gè)指數(shù)的最小步數(shù)。比如31輸出6(1 2 4 8 16 32 31)。

            這道題目是去年參加whu邀請賽的時(shí)候遇到的,當(dāng)時(shí)是熱身賽題目,后來一直沒想通,看了威士忌的解題報(bào)告,是用迭代加深寫的,后來想了想越看越象BFS,就開始敲了,可是973這組數(shù)據(jù)總是輸出13,搞了半天把路徑輸出來發(fā)現(xiàn)了弊病所在,就是在兩個(gè)搜到相同的值的步數(shù)是一樣的時(shí)候,不能略過,因?yàn)槁窂讲煌赡軐?dǎo)致最后的結(jié)果不同,但是記錄路徑再比較就太冗繁了,我的策略是將步數(shù)相同的值多搜幾次取最優(yōu),竟然過了,344MS。不過時(shí)限開了5000MS,怎么搜都可以過的。

            具體思路:
            對一個(gè)結(jié)構(gòu)體進(jìn)行Bfs,記錄路徑,每次搜到u這個(gè)數(shù)的當(dāng)前步數(shù)小于先前搜出的數(shù)則入隊(duì),如果等于,也入隊(duì),并且u這個(gè)數(shù)的計(jì)數(shù)器+1,直到達(dá)到某個(gè)limit則不再搜(后來刷了下,limit取6的時(shí)候可以達(dá)到74MS)保存最優(yōu)值即可。

            代碼如下:
            #include <iostream>
            #include 
            <queue>
            using namespace std;

            struct point
            {
                
            int stack[30];
                
            int x;
                
            int top;
                
            int step;
            }
            temp, tt, buf;

            int n;
            int Min[2001];
            int coun[2001];

            queue 
            < point > q;

            int main()
            {    
                
            int i, j, k;
                memset(Min, 
            -1sizeof(Min) );
                memset(coun, 
            0sizeof(coun));
                Min[
            1= 0;

                temp.top 
            = 0;
                temp.stack[ temp.top
            ++ ] = 1;
                temp.step 
            = 0;
                temp.x 
            = 1;

                q.push( temp );

                
            while(!q.empty())
                
            {
                    temp 
            = q.front();
                    q.pop();


                    
            for(i = 0; i < temp.top; i++){
                        
            for(j = -1; j <= 1; j += 2)
                        
            {
                            tt 
            = temp;
                            tt.step 
            = temp.step + 1;
                            
            int u = tt.x + tt.stack[i] * j;

                            
            if(u <= 1 || u > 2000)
                                
            continue;

                            
            if(tt.step == Min[u])
                            
            {
                                coun[u] 
            ++;
                                
            if(coun[u] > 10)
                                    
            continue;

                                tt.stack[ tt.top 
            ++ ] = u;
                                tt.x 
            = u;
                                q.push( tt );
                            }


                            
            if(Min[u] == -1 || tt.step < Min[u])
                            
            {
                                Min[u] 
            = tt.step;
                                tt.stack[ tt.top 
            ++ ] = u;
                                tt.x 
            = u;
                                q.push( tt );
                            }

                        }

                    }

                }


                
            while( scanf("%d"&n) != EOF && n ){
                    printf(
            "%d\n", Min[n] );
                }

                
            return 0;
            }




            posted on 2009-02-16 20:59 英雄哪里出來 閱讀(625) 評論(0)  編輯 收藏 引用 所屬分類: ACM

            东方aⅴ免费观看久久av| 丰满少妇高潮惨叫久久久| 亚洲第一永久AV网站久久精品男人的天堂AV | 精品久久久久久国产三级 | 久久精品国产亚洲AV蜜臀色欲| 久久久久久午夜成人影院| 亚洲一区二区三区日本久久九| 天堂无码久久综合东京热| 久久久久高潮毛片免费全部播放 | 久久精品亚洲精品国产欧美| 久久精品青青草原伊人| 99久久国产综合精品成人影院| 2020久久精品亚洲热综合一本| 久久er国产精品免费观看2| 久久久精品国产| 99久久99久久精品国产片果冻| 久久天天躁狠狠躁夜夜不卡| 国内精品久久久久久久久| 久久婷婷五月综合97色一本一本| 久久激情五月丁香伊人| 久久久无码精品亚洲日韩按摩| 久久国产AVJUST麻豆| 久久国产三级无码一区二区| 久久精品国产亚洲麻豆| 精品国产乱码久久久久软件| 日本精品久久久久久久久免费| 一本久久久久久久| 国产精品久久久久影院嫩草| 人妻久久久一区二区三区| 久久综合亚洲鲁鲁五月天| 日韩电影久久久被窝网| 久久精品亚洲男人的天堂| 香蕉久久夜色精品国产小说| 99久久免费国产精精品| 久久久久人妻一区精品性色av| 久久人人爽人人爽人人片av麻烦 | 久久国产乱子伦精品免费强| 亚洲精品乱码久久久久久蜜桃不卡| 亚洲国产精品一区二区三区久久| 久久久久人妻一区精品果冻| 久久久无码精品午夜|