• <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>
            我叫張小黑
            張小黑的掙扎生活
            posts - 66,  comments - 109,  trackbacks - 0

            solaris 10.0下的gaim并不支持qq~~不是很方便~~網(wǎng)頁版的qq又實(shí)在太丑陋了~~而且很不方便~~安全性應(yīng)該也不高~于是我還是下定決心裝一個(gè)gaim的升級(jí)軟件pidgin~~它支持更多的聊天模式
            今天的最后一次嘗試~~成功了~~happy
            在網(wǎng)上搜了很久很久~~參考了大家的安裝方法~但是還是有點(diǎn)些是要自己試一試的~~

            首先下載一個(gè)pidgin的軟件包~~我是下載的最新版本2.5.1
            http://www.pidgin.im/download/source/(我是保存在桌面上)

            下面執(zhí)行解壓縮命令

                # bunzip2 /Desktop/pidgin-2.5.1.tar.bz2
                # tar xvf /Desktop/pidgin-2.5.1.tar
                # cd pidgin-2.5.1

            準(zhǔn)備GCC編譯器Solaris10以后,gcc缺省安裝在/usr/sfw/bin目錄下。因此,只需要設(shè)置好環(huán)境變量即可:

                # PATH=/usr/sfw/bin:/usr/ccs/bin:$PATH
                # export PATH
            (這一步我不知道到底要不要~~參考的別人是說要的~~但是sun網(wǎng)頁上提供的是沒有的,反正我是敲了的)

            下面是configure
            在成功執(zhí)行以上步緅后會(huì)在/pidgin-2.5.1包里找到一個(gè)configure文件
            網(wǎng)上提供的資料都說這里需要注釋一些個(gè)什么東西~~但是我在這個(gè)文件進(jìn)行關(guān)鍵字查找都找不到他說的那些個(gè)東西~~我想可能是pidgin版本不同的原因


            所以我們直接進(jìn)行configure就好了

                # ./configure --disable-perl --with-ncurses-headers=/opt/csw/include/ncurses             --prefix=/opt/csw
            (開始我是按照sun公司的敲的的~~但是check過后總會(huì)說一些東西需要disable掉,于是按照他說的一個(gè)一個(gè)的往命令行里面添加)
            最后這行命令變成了
                #./configure --disable-perl --disable-gtkspell --disable-meanwhile --disable-nm         --disable-avahi --disable-tcl --with-ncurses-headers=/opt/csw/include/ncurses             --prefix=/opt/csw

            成功后,再執(zhí)行下面的編譯命令:
            # gmake
            # gmail install
            # alias gaim='/opt/csw/bin/pidgin > /dev/null 2>&1 &'
            參考資料
            就好啦~~

            參考資料:
            http://www.unix-center.net/bbs/viewthread.php?tid=5249
            http://blogs.sun.com/mishuang/entry/how_to_use_qq_with
            http://wiki.developers.sun.com.cn/index.php/Solaris%E4%B8%8B%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85gcc%E7%BC%96%E8%AF%91%E5%99%A8%3F
            http://hi.baidu.com/i0n_p/blog/item/d96b6308ca2bfb900a7b82fa.html
            posted @ 2008-09-16 13:02 zoyi 閱讀(1642) | 評(píng)論 (3)編輯 收藏
                 摘要: 這道題很煩。。我的代碼也很煩。。我想也沒人愿意會(huì)看下面是為我找錯(cuò)誤提供方便的幾個(gè)地方:http://blog.csdn.net/tiaotiaoyly/archive/2008/02/11/2087975.aspx他總結(jié)得很好。。但是對(duì)我?guī)椭淮蟆!:呛恰!2贿^可以參考一下開始幾個(gè)錯(cuò)誤還是自己的數(shù)據(jù)測(cè)出來的。。我最致命的錯(cuò)誤是橫線的輸出橫線的長(zhǎng)度其實(shí)取決于上下兩個(gè)數(shù)的長(zhǎng)度的。。我一直以為是取決于最...  閱讀全文
            posted @ 2008-07-15 22:29 zoyi 閱讀(637) | 評(píng)論 (0)編輯 收藏
            從昨天到今天。。。。
            我不明白。。為什么一直錯(cuò)。。。我現(xiàn)在還是不明白。。
            這是我寫這類問題。。似乎都會(huì)出現(xiàn)的問題。。要把數(shù)組開單很多很多倍。。我到現(xiàn)在還是不明白這是為什么





            還是第一次能在第一頁的呢。。呵呵。。小安慰一下

            #include<iostream>
            #include
            <algorithm>
            #define MaxN 
            300005
                         
            #define MaxM 
            200005
            using namespace std;
            int N,M,res[MaxM];
            struct node
            {
                
            int pri,n;
                friend bool operator
            <(node a,node b)
                {
                    return a.pri
            <b.pri;
                }
            }index[MaxN],ii[MaxN];
            struct line
            {
                
            int b,e,k,n,ans;
                friend bool operator
            <(line a,line b)
                {
                    return a.b
            <b.b;
                }
            }Line[MaxM];
            int cc[MaxN];
            void inser_del(
            int key,int flag)
            {
                
            int L=0,R=N-1,mid,v=1;
                
            while(L<R)
                {
                    cc[v]
            +=flag;
                    
            mid=(L+R)/2;
                    v
            *=2;
                    
            if(key<=mid)
                        R
            =mid;
                    
            else
                    {
                        v
            ++;
                        L
            =mid+1;
                    }
                }
                cc[v]
            +=flag;
            }
            int solve(int k)
            {
                
            int L=0,R=N-1,mid,v=1;
                
            while(L<R)
                {
                    
            mid=(L+R)/2;
                    
            if(cc[2*v]>=k)
                    {
                        R
            =mid;
                        v
            *=2;
                    }
                    
            else 
                    {
                        L
            =mid+1;
                        k
            -=cc[2*v];
                        v
            =2*v+1;
                    }
                }
                return index[L].pri;
            }

            int main()
            {
                
            int i,j;
                scanf(
            "%d%d",&N,&M);

                    
            for(i=0;i<N;index[i].n=i++)
                        scanf(
            "%d",&index[i].pri);
                    
            for(i=0;i<M;Line[i].n=i++)
                    {
                        scanf(
            "%d%d%d",&Line[i].b,&Line[i].e,&Line[i].k);
                        
            if(Line[i].b>Line[i].e)swap(Line[i].b,Line[i].e);
                        
            --Line[i].b;
                        
            --Line[i].e;
                    }
                    
            //初始化-->cc為0
                    sort(index,index
            +N);
                    sort(Line,Line
            +M);
                    
                    
            for(i=0;i<N;i++)
                    {
                        ii[index[i].n].pri
            =index[i].pri;
                        ii[index[i].n].n
            =i;
                    }

                    
            for(i=Line[0].b;i<=Line[0].e;i++)
                        inser_del(ii[i].n,
            1);

                    
            for(i=1;i<M;i++)
                    {
                        Line[i
            -1].ans=solve(Line[i-1].k);
                        
            if(Line[i - 1 ].e>=Line[i].b)
                         {
            for  (j = Line[i - 1 ].b; j < Line[i].b; j ++ )
                            inser_del(ii[j].n,
            -1);
                         
            for  (j = Line[i - 1 ].e + 1 ; j <= Line[i].e; j ++ )
                           inser_del(ii[j].n,
            1);
                         
                        } 
                        
            else 
                        {
                         
            for(j=Line[i - 1].b;j<=Line[i - 1 ].e;j ++ )
                             inser_del(ii[j].n,
            -1);
                         
            for  (j = Line[i].b; j <= Line[i].e; j ++ )
                             inser_del(ii[j].n,
            1);
                        }
                    }
                    Line[i
            -1].ans=solve(Line[i-1].k);
                    
            for(i=0;i<M;i++)
                        res[Line[i].n]
            =Line[i].ans;
                    
            for(i=0;i<M;i++)
                        printf(
            "%d\n",res[i]);

                return 
            0;
            }

            posted @ 2008-07-15 13:46 zoyi 閱讀(387) | 評(píng)論 (0)編輯 收藏
            這個(gè)題真的好煩。。

            別的就不寫了。。貼幾個(gè)數(shù)據(jù)

            7
            999
            898
            1
            45221
            452511
            43349
            808

            只記得這么幾個(gè)了。。。這幾個(gè)都出過錯(cuò)。。

            以下是代碼。。。
            堅(jiān)持一點(diǎn)oj沒錯(cuò)。。如果一直是wa。。那么出錯(cuò)的肯定是你!

            #include<iostream>
            #define MaxK 
            2000005
            char k[MaxK];
            int down[MaxK];
            void solve()
            {
                
            int len=(int)strlen(k),i,j,c;
                bool tag
            =true;
                
            for(i=0;i<len;i++)
                    
            if(k[i]!='9')
                        break;
                
            if(i>=len)
                {
                    
            for(i=1;i<len;i++)
                        k[i]
            ='0';
                    k[0]=k[len]='1';
                    k[len+1]='\0';
                    return;
                }
                
            if(len%2)
                    i
            =len/2-1,j=i+2;
                
            else
                    i
            =(len-1)/2,j=i+1;
                
            while(i>=0&&j<len)
                {
                    
            if(k[i]>k[j])
                        down[j]
            =-1;//k[j]up
                    
            else if(k[i]<k[j])
                        down[j]
            =1;//k[j]down
                    i
            --,j++;
                }
                
            if(len%2)
                    i
            =len/2+1;
                
            else i=len/2;
                
            for(;i<len;i++)
                {
                    
            if(down[i]==-1)
                        break;
                    
            else if(down[i]==1)
                    {
                        tag
            =false;
                        break;
                    }
                }
                
            if(i>=len)tag=false;
                
            for(len%2?i=len/2+1:i=len/2;i<len;i++)

                    
            if(down[i])
                    {
                        k[i]
            =k[len-1-i];
                }
                
            if(!tag)
                {
                        i
            =len/2,c=1;
                        
            while(i>=0&&c)
                        {
                            c
            =(k[i]-'0'+1)/10;
                            k[i]=((k[i]-'0')+1)%10+'0';
                            k[len-1-i]=k[i];
                            i
            --;
                        }
                }
            }
                
            int main()
            {
                
            int T;
                scanf(
            "%d",&T);
                
            while(T--)
                {
                    memset(down,
            0,sizeof(down));
                    memset(k,
            0,sizeof(k));
                    scanf(
            "%s",k);
                    solve();
                    printf(
            "%s\n",k);
                }
                return 
            0;
            }
            posted @ 2008-07-14 14:31 zoyi 閱讀(403) | 評(píng)論 (1)編輯 收藏

            一維情況:

             

            設(shè)序列的元素存儲(chǔ)在a[]中,a的下標(biāo)是1..n的正整數(shù),需要?jiǎng)討B(tài)地更新某個(gè)a[x]的值,同時(shí)要求出a[x1]到a[y1]這一段所有元素的和。

            如果要?jiǎng)討B(tài)更新m次。。我們顯然可以用o(mn)的暴力弄出來
            其實(shí)可以o(mlogn)的;

            在李睿的論文里提出了一種新的數(shù)據(jù)結(jié)構(gòu):
            很巧妙,很強(qiáng)大:
            對(duì)于序列a[],我們?cè)O(shè)一個(gè)數(shù)組C,其中 (k為i在二進(jìn)制下末尾0的個(gè)數(shù))。

            c[i]=a[i]+a[i-1]+...+
            a[i-2^k+1]//這一項(xiàng)的最后一位一定是0
            包含a[x]的c序列:

            c[x]=a[x]+a[x-1]+...+a[x-2^k+1]
            c[x+2^k]=a[x+2^k]+a[x+2^k-1]...+a[x]+...+a[x-2^k+1]
            ....
            一直加到<=S的狀況


            針對(duì)這個(gè)情況。。我們有兩個(gè)實(shí)現(xiàn)。。一個(gè)是update(),另一個(gè)是統(tǒng)計(jì)的操作
            如果針對(duì)上面的統(tǒng)計(jì)就是求給定區(qū)間的sum (x,y)=sum(1,y)-sum(1,x);

            procedure UPDATA(x,A)
            begin
                 p←x
                 
            while (p<=n) do
                 begin
                     C[p]←C[p]
            +A
                        p←p
            +LOWBIT(p)
                 
            end
            end 

            求a[1]-a[x]的和
            function  SUM(x)
            begin
                ans ← 
            0
            p ← x
            while (p>0do
                 begin
                      ans←ans
            +C[p]
                      p←p
            -LOWBIT(p)
                 
            end
            return ans
            end 

            我們通過一維的可以擴(kuò)展成二維的:(IOI  MOBILES
            以下是我的這代碼:

            #include
            <iostream>
            #define MaxS 
            1025
            #define L(a) (a
            &(a^(a-1)))
            int S,x,y,A,L,B,R,T;
            int c[MaxS][MaxS];
            void update()
            {
                
            //x<=i<S的c[i][y]更新
                
            int i,j;
                
            for(i=x;i<=S;i+=L(i))
                    
            for(j=y;j<=S;j+=L(j))
                        c[i][j]
            +=A;
            }
            int compute(int x,int y)
            {
                
            int result=0,i,j;
                
            for(i=x;i>0;i-=L(i))
                    
            for(j=y;j>0;j-=L(j))
                        result
            +=c[i][j];
                return result;
            }
            int main()
            {
                
            int oper,ans;
                
            while(scanf("%d",&oper)&&oper!=3)
                {
                    switch (oper)
                    {
                    
            case 0:
                        scanf(
            "%d",&S);
                        memset(c,
            0,sizeof(c));
                        break;
                    
            case 1:
                        scanf(
            "%d%d%d",&x,&y,&A);
                        x
            ++,y++;
                        update();
                        break;
                    
            case 2:
                        scanf(
            "%d%d%d%d",&L,&B,&R,&T);
                        L
            ++,B++,R++,T++;
                        ans
            =compute(R,T)-compute(L-1,T)-compute(R,B-1)+compute(L-1,B-1);
                        printf(
            "%d\n",ans);
                        break;
                    }
                }
                return 
            0;
            }
            posted @ 2008-07-13 19:40 zoyi 閱讀(290) | 評(píng)論 (0)編輯 收藏

            今天居然一點(diǎn)都不想睡覺。。。。
            昨天一夜。。。呵呵。。。
            我們干了什么呢。。。
            在大大的寢室里偷來了面條。。偷了火鍋底料。。搬來了鍋。。。
            很久都沒有煮東西吃了。。辣辣的火鍋的底料。。。。
            我。。麥兜。。秀怡(這個(gè)名字好久沒叫了(*^__^*) 嘻嘻……)
            我們都辣的滿面通紅。。。
            我還很逞強(qiáng)的bs兜兜。。。。這個(gè)豬頭一點(diǎn)用都沒有。。。。。
            o(∩_∩)o...哈哈...
            秀逸的裝備最齊全了。。呵呵我和兜兜是沒碗沒勺。。。
            用貪婪的眼神在寢室里狂掃。。。看見了過年發(fā)的阿華田
            呵呵。。還沒怎么喝呢。。
            要不都倒掉。。拿罐子當(dāng)碗用。。呵呵。。我的perfect 建議
            。。。。。被兜兜白眼了。。。
            最后將用茶杯作碗。。。勺子動(dòng)用了響響的生日禮物。。呵呵。。
            我還順便抱怨了一句怎么沒人送碗做生日禮物呢。。呵呵。。。

            /**********************************************************************************/

            其實(shí)昨天本來睡得很早。。
            很累。。很難受。
            媽媽很晚的電話叫醒了在床上酣睡的我和麥兜。。。
            以前和媽媽一直都有心靈感應(yīng)的。。一般媽媽的電話如果我在的話。。總會(huì)有感覺的。。
            這一次。。。是麥兜接的。。
            麥兜把我喊下來。。
            拿起電話。。。。媽媽的思念從另一邊傳來
            媽媽問要不要媽媽來。。。
            即使天氣很熱。。媽媽還是很想來的吧
            我是個(gè)自私的人。。
            “你來我更累。。。我沒空陪你啊”
             我真的很自私。。我明白這一點(diǎn)。。我也很痛恨這樣的我。。
            我怎么能說出這么自私的話。。
            媽媽。。真的。。對(duì)不起。。
            我知道您想我。。您很孤獨(dú)。。。
            我和爸爸都不在你身邊。。
            對(duì)不起。。。
            我漸漸長(zhǎng)大。。。從你們的保護(hù)中悄悄飛走。。。
            你們看著我越飛越遠(yuǎn)。。其實(shí)我也不知道家對(duì)我來說意味著什么

            家是指你和爸爸。。還是我們?cè)?jīng)一起住過十年的小屋
            如果是你和爸爸。。。。如果就只有我們?nèi)齻€(gè)人。。就算出門在外也會(huì)有家在一起的感覺么。。
            我不知道。。。記得在今年的年三十。。第一個(gè)孤獨(dú)過年的日子
            對(duì)這上海的夜。。我想。。媽媽說我不回去過年。。你們就來上海陪我。。
            如果真的是這樣。。那我們一家三口真的好慘。。在上海這個(gè)陌生的城市。。
            這是父愛母愛。。。我懂。。但是懂得好辛苦。。我能做什么呢。。。。
            媽媽你說過在別人面前你很驕傲。。有個(gè)好孩子。。但是別人不懂得你心里的苦。。
            每次你這么說。。。我知道你心里在哭。。
            爸爸我總是那么少的想起你。。有一次媽媽說爸爸很開心我和爸爸發(fā)短信聊天。。
            寫不下去了。。
            呵呵。。我是個(gè)沒用的人。。
            哭的一趟糊涂。。看不清了。。呵呵。。

            我愛你們。。爸爸媽媽。。
            真的。。我永遠(yuǎn)愛你們。。我對(duì)不起你們
            我不知道我除了說對(duì)不起還能說什么
            posted @ 2008-07-13 14:34 zoyi 閱讀(443) | 評(píng)論 (6)編輯 收藏

            在poi的列表上是easy。。。。
            我倒。。這也easy。。。。。。
            這道題多虧了javaman。。呵呵。。這一次。。他講的挺清楚的。。。謝謝他一下

            題目大意:
                  根據(jù)輸入,序列的長(zhǎng)度,序列和,求這樣一串序列
                  序列滿足以下情況:

            • for any k, such that 1 <= k < n : |ak - ak+1| = 1 and
            • a1 = 0

              如果沒有如此序列則輸出"No"

            我們假設(shè)n-->序列長(zhǎng)度,S-->序列和;

            S=sigma a[i](1<=i<=n)
            令bi=a[i+1]-a[i] (1<=i<n)

            S=sigama b[i]+sigama a[i] (1<=i<n) ----> S= sgama (n-i)b[i]; (1<=i<n)//迭代加一下就能推出來

            b[i]-->-1 or 1

            S=sigama (n-i)(b[i]+1)-sigama(n-i)
               =2*sigama ((n-i)(b[i]+1)/2)  -  n*(n-1)/2

            d[i]=(b[i]+1)/2-->0 or 1
            根據(jù)上式得:
            no-->
            1: S+n*(n-1)/2 為奇數(shù)
            2: abs(S)>n*(n-1)/2  //important ....我就是這里一直錯(cuò)...絕對(duì)值...沒考慮....

            #include<iostream>
            #include
            <math.h>
            int N,S;
            int main()
            {
                
            int std,i,d,pre;
                
            int T;
                scanf(
            "%d",&T);
                
            for(int j=1;j<=T;j++)
                {
                    scanf(
            "%d%d",&N,&S);
                    std
            =(N*(N-1))/2;
                    
            if((S+std)%2||abs(S)>std)
                    {
                        printf(
            "No\n");
                        
            if(j!=T)printf("\n");
                        continue;
                    }
                    printf(
            "0\n");
                    
            for(pre=0,std+=S,std/=2,i=1;i<N;i++)
                    {
                        
            if(std>=N-i)
                        {    
                            d
            =1;
                            std
            -=N-i;
                        }
                        
            else d=0;
                        printf(
            "%d\n",pre=2*d-1+pre);
                    }
                    
            if(j!=T)printf("\n");
                }
                return 
            0;
            }
            posted @ 2008-07-12 12:08 zoyi 閱讀(544) | 評(píng)論 (1)編輯 收藏

            一道數(shù)學(xué)題。弱弱不會(huì)做。。

            開始一直鉆牛角尖。。用暴力把數(shù)據(jù)跑了一下。然后找規(guī)律。。發(fā)現(xiàn)好像是找n的互質(zhì)的質(zhì)因數(shù)對(duì)數(shù)。。
            小的數(shù)據(jù)用手算是可以算出來的。。但是不知道怎么用程序來算。。

            后面參考pc的。。。。知道了是怎么回事。。
            我想以后如果有需要求質(zhì)因數(shù)對(duì)數(shù)的個(gè)數(shù)。。可以用這種方法反過來求。。

            下面是代碼:

            #include<iostream>
            int N;
            int solve(int N)
            {
                
            int i,ans=1,t;
                
            for(i=2;i*i<=N;i++)
                {
                    t
            =0;
                    
            while(!(N%i))
                    {
                        t
            ++;
                        N
            /=i;
                    }
                    ans
            *=2*t+1;
                }
                
            if(ans==1||N!=1)ans*=3;
                return ans;
            }
            int main()
            {
                
            int T,cas,id;
                scanf(
            "%d",&T);
                
            for(cas=1;cas<=T;cas++)
                {
                    scanf(
            "%d",&N);
                    id
            =solve(N);
                    
            if(N==1)id=1;
                    printf(
            "Scenario #%d:\n%d\n\n",cas,(id+1)/2);
                }
                return 
            0;
            }
            posted @ 2008-07-09 10:41 zoyi 閱讀(499) | 評(píng)論 (1)編輯 收藏

            這道題是zp推薦的,說是一道動(dòng)態(tài)規(guī)劃題,做完后覺得這就是我最不認(rèn)為是dp的一種dp題,他的思想和那種給你一個(gè)地圖,起始位置在左上角,終點(diǎn)位置在右下角,每個(gè)位置上都有一定的寶藏,規(guī)定了每次只能往右走一步,或是往下走一步。。然后問你最后能取得的寶藏最大值,開始我就不認(rèn)為這種題是dp,他的狀態(tài)只會(huì)和前一狀態(tài)有關(guān)。而1029這個(gè)題就是這樣子的。

            下面是我做這個(gè)題之前別人的提示,有幾個(gè)關(guān)鍵字:
            2^n個(gè)狀態(tài),n為列數(shù),我們做到按行更新,更新一行的時(shí)候我們按列來,如果更新到最后一列,則換下一行。
            更新當(dāng)前行時(shí)和上一行有關(guān)。

            這兩句話給了開始的模糊印象。。但是確實(shí)有點(diǎn)抽象

            下面是cpg2001  

            用橫線來劃分階段,對(duì)于圖一,雖然劃分后很整齊,但把某些磚分成了兩半,于是將他們也添加進(jìn)來,于是變成了圖二,其顯得參差不齊,但最多也是向下突出一格,在圖三中,我們將圖二的空隙填滿,則又轉(zhuǎn)移到了下一種狀態(tài)。

            定義添磚小塊狀態(tài)為1,否則為0,則每行狀態(tài)可以映射到一個(gè)數(shù)(0,2^h})于是可建立這樣的狀態(tài)a[ i j]:表示第i行填滿,第i+1行對(duì)應(yīng)狀態(tài)為j時(shí)的不同方案數(shù),a[I,j]=a[i-1,k],其中,狀態(tài)k可導(dǎo)出狀態(tài)j,初始化條件a[0,0]=1,最后a[w,0]即為所求。


            的啟發(fā),再加上zp的講解逐漸清晰起來:
            行數(shù)我們默認(rèn)是從0開始


            第三行的賦值情況 :000011
            第四行的賦值情況 :100100
            第五行的賦值情況 :011000
            圖一:第三行填滿了,第三行的第一個(gè)格子是一個(gè)豎形格子,這個(gè)豎形格子的上格子在第三行,下格子在第四行,于是在第四行需要補(bǔ)格子故置為1,第三行的第二個(gè)第三個(gè)格子是個(gè)橫條,我們都置為0,緊接著又是一個(gè)豎形格子的上半個(gè)格子,同樣是0,下面兩個(gè)都是豎形格子的下半個(gè)置為1
            同理將分別對(duì)第四行第五行賦值
            比如圖二的第四行,第二第三個(gè)兩個(gè)連續(xù)的零,還有一種方案是擺一個(gè)橫條。
            其他的詳見注釋。

            我的代碼:
            #include<iostream>
            #define max(a,b) (a
            >b?a:b)
            int N,M,maxl=0;
            __int64 ans[
            3000],tmp[3000];
            void solve(
            int j,int last,int now)
            {
                
            if(j>M)
                {
                    tmp[
            now]+=ans[last];
                    maxl
            =max(maxl,now);
                    return;
                }
                
            int up=(1<<(M-j))&last,uprt;
                
            //up-->頭頂上的那個(gè)格子狀態(tài),uprt-->頭頂上的右邊的那個(gè)格子的狀態(tài)
                
            if(j==M)
                {
                    
            if(!up)solve(j+1,last,now*2+1);//就剩一個(gè)空了,并且上面的那個(gè)是0,那么顯然是豎條
                    
            //這一行需要補(bǔ)一個(gè)小方格
                    
            //如果上面是1,顯然下面仍然是要接著一個(gè)豎條,但是這個(gè)小方格是上面這半個(gè),無需置1
                    
            else solve(j+1,last,now*2);
                }
                
            else
                {
                    uprt
            =(1<<(M-j-1))&last;
                    
            if(!up)
                    {
                        solve(j
            +1,last,now*2+1);
                        
            if(!uprt)//如果頭頂上的不為0,頭頂上右邊的也不為0,下面的就可以放一個(gè)橫條
                            solve(j
            +2,last,now*4);
                    }
                    
            else//這個(gè)地方時(shí)很容易出錯(cuò)的,我這里認(rèn)為是第j列置為0
                        
            //可以理解為是一個(gè)豎形條狀的上半個(gè)格子,也可以認(rèn)為是一個(gè)橫行條狀的左半個(gè)格子
                        
            //這里千萬不能把這兩種情況分開計(jì)算,這樣會(huì)重復(fù)的
                        solve(j
            +1,last,now*2);
                }
            }
                        

            int main()
            {
                
            int i,j;
                
            while(scanf("%d%d",&N,&M)&&N)
                {
                    
            if((N*M)%2)
                    {
                        printf(
            "0\n");
                        continue;
                    }
                    memset(ans,
            0,sizeof(ans));
                    ans[
            0]=1;
                    
            for(i=1;i<=N;i++)
                    {
                        memset(tmp,
            0,sizeof(tmp));
                        
            for(j=0;j<=maxl;j++)
                            
            if(ans[j])solve(1,j,0);
                        memcpy(ans,tmp,sizeof(tmp));
                    }
                    printf(
            "%I64d\n",ans[0]);
                }
                return 
            0;
            }
            posted @ 2008-07-08 14:01 zoyi 閱讀(803) | 評(píng)論 (2)編輯 收藏
            fighting~~
            posted @ 2008-05-29 13:29 zoyi 閱讀(546) | 評(píng)論 (7)編輯 收藏
            僅列出標(biāo)題
            共7頁: 1 2 3 4 5 6 7 
            歡迎光臨 我的白菜菜園

            <2015年3月>
            22232425262728
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(8)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊(cè)

            acmer

            online judge

            隊(duì)友

            技術(shù)

            朋友

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久国产成人| 伊人久久成人成综合网222| 久久综合色区| 精品久久久久久国产潘金莲| 久久国产视频99电影| 久久久久久亚洲Av无码精品专口 | 无码人妻久久一区二区三区蜜桃| 久久久女人与动物群交毛片| 亚洲精品视频久久久| 色综合合久久天天综合绕视看| 97久久国产综合精品女不卡| 久久久WWW成人免费毛片| 久久成人国产精品二三区| 久久亚洲熟女cc98cm| 久久99精品久久久久久9蜜桃| 国产精品视频久久久| 亚洲人成精品久久久久| 性做久久久久久久久| 久久久久久亚洲精品不卡| 国产午夜精品久久久久九九| 久久精品天天中文字幕人妻| 久久精品国产99久久久古代| 欧洲国产伦久久久久久久| 国产农村妇女毛片精品久久 | 久久久久久国产精品免费无码| 一本色道久久88综合日韩精品| 国产精品成人99久久久久| 久久香蕉国产线看观看99| 国产精品久久久福利| 国内精品久久久久久99蜜桃| 亚洲AV无码久久精品色欲| 亚洲国产精品无码久久久不卡| 亚洲AV日韩精品久久久久久| 亚洲AV日韩精品久久久久久久| 国内精品久久久久久久久电影网| 香蕉久久久久久狠狠色| 久久中文字幕人妻丝袜| 久久久久久久久波多野高潮| 99精品国产免费久久久久久下载 | 7777精品伊人久久久大香线蕉| 日韩电影久久久被窝网|