• <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>

            The Fourth Dimension Space

            枯葉北風(fēng)寒,忽然年以殘,念往昔,語(yǔ)默心酸。二十光陰無(wú)一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢(mèng)令

            暑假第一次大練習(xí)賽總結(jié)

             

                 難度感覺(jué)還好吧,最后一題那么簡(jiǎn)單居然沒(méi)過(guò)有點(diǎn)后悔,而且做RSA浪費(fèi)了大量時(shí)間導(dǎo)致后來(lái)沒(méi)有時(shí)間看別的題,這一點(diǎn)要注意下。不然有很多能過(guò)的題過(guò)不了,這就比較遺憾了。

            A. 剩下的士兵 就是對(duì)n不斷地除以m,直到比m小為止,同時(shí)記錄除了幾次,然后將剩下的數(shù)字乘以mN次即可得到答案。
            #include
            <iostream>
            #include
            <cmath>
            #include
            <algorithm>
            using namespace std;
            int n,m;

            int get(int n,int d)
            {
                
            int res=n;
                
            for(int i=1;i<=d;i++)
                
            {
                    res
            *=m;
                }

                
            return res;
            }


            int main()
            {
                
                
            while(scanf("%d%d",&n,&m)!=EOF)
                
            {
                    
            if(n==0&&m==0)
                        
            break;
                    
            int cnt=0;
                    
            while(n)
                    
            {
                        
            if(n<m)
                            
            break;
                        n
            /=m;
                        cnt
            ++;
                    }

                    printf(
            "%d\n",n);
                    
            for(int i=1;i<n;i++)
                        printf(
            "%d ",get(i,cnt));
                    printf(
            "%d\n",get(n,cnt));

                }

                
            return 0;
            }

                
            B base64編碼,貌似有道上才做過(guò)的,可是我依然選擇了數(shù)組模擬。 怎么就不會(huì)用位運(yùn)算呢。。。這題可以再研究下
            #include
            <iostream>
            #include
            <cmath>
            #include
            <algorithm>
            #include
            <map>
            using namespace std;
            map
            <int,char>mm;

            /**//*
            int main()
            {

                freopen("in.txt","r",stdin);
                freopen("out.txt","w",stdout);
                int a;
                char s[10];
                while(scanf("%d%s",&a,s)!=EOF)
                {

                    printf("mm[%d]='%s';\n",a,s);


                }
                return 0;
            }
            */


            int two[]={32,16,8,4,2,1};
            char s[1000];
            int t[1000];
            int lastpos;
            void add(int i,int a)//將字符串的asc碼附加到i號(hào)地址的后面
            {    
                
            int tt=a;
                
            for(int j=i+8-1;j>=i;j--)
                
            {

                    t[j]
            =tt%2;
                    tt
            /=2;
                }

            }


            int get(int i)
            {

                
            int res=0;
                
            for(int j=0;j<6;j++)
                
            {
                    res
            +=t[i+j]*two[j];
                }

                
            return res;
            }




            int main()
            {
                mm[
            0]='A';
                mm[
            17]='R';
                mm[
            34]='i';
                mm[
            51]='z';
                mm[
            1]='B';
                mm[
            18]='S';
                mm[
            35]='j';
                mm[
            52]='0';
                mm[
            2]='C';
                mm[
            19]='T';
                mm[
            36]='k';
                mm[
            53]='1';
                mm[
            3]='D';
                mm[
            20]='U';
                mm[
            37]='l';
                mm[
            54]='2';
                mm[
            4]='E';
                mm[
            21]='V';
                mm[
            38]='m';
                mm[
            55]='3';
                mm[
            5]='F';
                mm[
            22]='W';
                mm[
            39]='n';
                mm[
            56]='4';
                mm[
            6]='G';
                mm[
            23]='X';
                mm[
            40]='o';
                mm[
            57]='5';
                mm[
            7]='H';
                mm[
            24]='Y';
                mm[
            41]='p';
                mm[
            58]='6';
                mm[
            8]='I';
                mm[
            25]='Z';
                mm[
            42]='q';
                mm[
            59]='7';
                mm[
            9]='J';
                mm[
            26]='a';
                mm[
            43]='r';
                mm[
            60]='8';
                mm[
            10]='K';
                mm[
            27]='b';
                mm[
            44]='s';
                mm[
            61]='9';
                mm[
            11]='L';
                mm[
            28]='c';
                mm[
            45]='t';
                mm[
            62]='+';
                mm[
            12]='M';
                mm[
            29]='d';
                mm[
            46]='u';
                mm[
            63]='/';
                mm[
            13]='N';
                mm[
            30]='e';
                mm[
            47]='v';
                mm[
            14]='O';
                mm[
            31]='f';
                mm[
            48]='w';
                mm[
            15]='P';
                mm[
            32]='g';
                mm[
            49]='x';
                mm[
            16]='Q';
                mm[
            33]='h';
                mm[
            50]='y';
                
            int ca;
                scanf(
            "%d",&ca);
                cin.ignore();
                
            while(ca--)
                
            {
                    
                    memset(t,
            0,sizeof(t));
                    gets(s);
                    
            int len=strlen(s);
                    lastpos
            =len*8-1;
                    
            for(int i=0;i<len;i++)
                    
            {
                        add(i
            *8,(int)s[i]);
                    }

                    
            if(len*8%6!=0)
                    
            {
                        
            for(int i=0;i<=len*8/6;i++)
                        
            {

                            
            int ans=get(i*6);
                            printf(
            "%c",mm[ans]);
                        }

                    }

                    
            else
                    
            {
                        
            for(int i=0;i<len*8/6;i++)
                        
            {

                            
            int ans=get(i*6);
                            printf(
            "%c",mm[ans]);
                        }

                    }


                    
            if(len%3==0)
                    
            {
                        printf(
            "\n");
                        
            continue;
                    }

                    
            else if(len%3==1)
                    
            {
                        printf(
            "==\n");
                    }

                    
            else if(len%3==2)
                    
            {

                        printf(
            "=\n");
                    }

                    
                }

                
            return 0;

            }



            G Add Number 
            這題用貪心 但是感覺(jué)有點(diǎn)詭異,我也沒(méi)法給出這種方法的證明。恩 再琢磨琢磨 #include
            <iostream>
            #include
            <algorithm>
            using namespace std;

            int const maxn=50;
            int t;
            int a[maxn];
            int n,m,k;

            void input()
            {
                scanf(
            "%d%d%d",&n,&m,&k);
                
            for(int i=1;i<=m;i++)
                    scanf(
            "%d",&a[i]);
            }


            int main()
            {
                scanf(
            "%d",&t);
                
            while(t--)
                
            {

                    input();
                    
            int cnt=0;
                    
            int tmax=0;
                    
            int pos=1;
                    
            //while(tmax<a[pos]-1)
                    
            //{
                    
            //    cnt++;
                    
            //    tmax=2*tmax+1;
                    
            //}
                    
                    
            for(pos=1;pos<=m;pos++)
                    
            {

                        
            while(tmax<a[pos]-1)
                        
            {
                            cnt
            ++;
                            tmax
            =2*tmax+1;
                        }

                        tmax
            +=a[pos];
                    }

                    
            while(tmax<n)
                    
            {
                        tmax
            =2*tmax+1;
                        cnt
            ++;
                    }

                    
            if(cnt<=k)
                        printf(
            "YES\n");
                    
            else
                        printf(
            "NO\n");
                }

                
            return 0;
            }
            謝謝 Glory 神牛提示

            H Route
            做BFS,果如到達(dá)某個(gè)點(diǎn)的概率大于初始值就更新它,由于是BFS,所以每條路徑都會(huì)測(cè)試到。
            #include
            <iostream>
            #include
            <algorithm>
            #include
            <memory.h>
            using namespace std;

            int const maxn=1010;
            int mm[1010][1010];
            int t;
            int n;
            //int v[maxn];
            double p[maxn];//1到n-2 注意
            double realp[maxn];
            struct node
            {
                
            int t;
                node 
            *next;
            }
            pool[maxn*maxn];

            struct node2
            {
                
            int t;
                
            double gailv;

            }
            q[maxn*maxn];
            node hash[maxn];
            int pcnt=0;
            node 
            *newnode()
            {
                node 
            *p=&pool[pcnt++];
                
            return p;
            }

            void add(int a,int b)
            {
                node 
            *p=newnode();
                p
            ->next=hash[a].next;
                p
            ->t=b;
                hash[a].next
            =p;
            }

            void init()
            {
                
                
            for(int i=0;i<n;i++)
                    realp[i]
            =0;//記住這個(gè)100
                pcnt=0;
                
            for(int i=0;i<=n;i++)
                
            {
                    hash[i].next
            =NULL;
                    hash[i].t
            =-1;
                }

            }


            void input()
            {
                init();
                
            int i,j;
                
            for(i=0;i<n;i++)
                    
            for(j=0;j<n;j++)
                    
            {

                        
            int t;
                        scanf(
            "%d",&t);
                        
            if(t==1)
                            add(i,j);
                    }

            }


            int main()
            {

                scanf(
            "%d",&t);
                
            while(t--)
                
            {
                    scanf(
            "%d",&n);
                    input();
                    
                    
            for(int i=1;i<n-1;i++)
                        scanf(
            "%lf",&realp[i]);
                    memset(p,
            0,sizeof(p));
                    realp[n
            -1]=1;
                    realp[
            0]=1;
                        

                    
            int l,r;
                    q[
            1].gailv=1;
                    q[
            1].t=0;
                    l
            =r=1;
                    
            while(l<=r)
                    
            {
                        
            for(node *pp=hash[q[l].t].next;pp;pp=pp->next)
                        
            {
                            
            if(realp[pp->t]*q[l].gailv>p[pp->t])
                            
            {
                                p[pp
            ->t]=realp[pp->t]*q[l].gailv;
                                r
            ++;
                                q[r].gailv
            =p[pp->t];
                                    q[r].t
            =pp->t;

                            }

                        }

                        l
            ++;
                    }

                    
            if(p[n-1]>0.00001)
                        printf(
            "%.4lf\n",p[n-1]);
                    
            else
                        printf(
            "Cannot reach!\n");
                }

                
            return 0;
            }

            J RSA簽名 數(shù)論大綜合題,這次居然是卡在學(xué)校的OJ不能用long 
            long 上,我囧啊 浪費(fèi)我近2個(gè)小時(shí)時(shí)間,這兩個(gè)小時(shí)至少可以出兩題吧。。。具體分析見(jiàn)這篇文章
                http://www.shnenglu.com/abilitytao/archive/2010/05/22/116089.html



            K.純暴力。。。開(kāi)始的時(shí)候還以為先得猜出4個(gè)數(shù)再暴力。。。沒(méi)想到是直接從0暴力到9999。。。我汗
            #include
            <iostream>
            #include
            <algorithm>
            using namespace std;
            int const maxn=100;
            int n;

            struct node
            {
                
            int a[4];
                
            int A,B;
                
            bool operator<(node other)const
                
            {
                    
            return B<other.B;
                }


            }
            re[maxn];

            bool OK(int p[])
            {

                
            int v[10];
                memset(v,
            0,sizeof(v));
                
            for(int j=0;j<4;j++)
                
            {
                    
            if(v[p[j]]==1)
                        
            return false;
                    v[p[j]]
            =1;
                }

                
            return true;
            }



            bool check(int num)
            {
                
            int v[10];
                
            int p[4];
                
            int nn=num;
                
            for(int j=3;j>=0;j--)
                
            {
                    p[j]
            =nn%10;
                    nn
            /=10;
                }

                
            if(!OK(p))
                    
            return false;
                
            for(int i=0;i<n;i++)
                
            {
                    memset(v,
            0,sizeof(v));
                    
            int cnt1=0;
                    
            int cnt2=0;
                    
            for(int j=0;j<4;j++)
                    
            {
                        
            if(p[j]==re[i].a[j])
                            cnt1
            ++;
                    }

                    
            if(cnt1!=re[i].A)
                        
            return false;
                    
            for(int j=0;j<4;j++)
                    
            {
                        v[re[i].a[j]]
            =1;
                    }

                    
            for(int j=0;j<4;j++)
                    
            {
                        
            if(v[p[j]]==1)
                            cnt2
            ++;
                    }

                    
            if(cnt2!=re[i].B)
                        
            return false;
                }

                
            return true;
            }



            int main()
            {

                
            while(scanf("%d",&n))
                
            {
                    
            if(n<=0)
                        
            break;
                    
            for(int i=0;i<n;i++)
                    
            {
                        scanf(
            "%1d%1d%1d%1d %1dA%1dB",&re[i].a[0],&re[i].a[1],&re[i].a[2],&re[i].a[3],&re[i].A,&re[i].B);
                    }

                    
            for(int i=100;i<=9999;i++)
                    
            {
                        
            if(i==2134)
                            
            int tt=1234;
                        
            int p[4];
                        
            if(check(i))
                        
            {
                            
            int nn=i;
                            
            for(int j=3;j>=0;j--)
                            
            {
                                p[j]
            =nn%10;
                                nn
            /=10;
                            }

                            
            for(int j=0;j<4;j++)
                                printf(
            "%d",p[j]);
                            printf(
            "\n");
                            
            break;
                        }


                    }


                    
                }

                
            return 0;
            }

               

            posted on 2010-07-08 22:29 abilitytao 閱讀(1685) 評(píng)論(3)  編輯 收藏 引用

            評(píng)論

            # re: 暑假第一次大練習(xí)賽總結(jié) 2010-07-09 13:32 飛鴿傳書(shū)

            知識(shí)是很基本的,不過(guò)看你寫(xiě)得很好,贊!  回復(fù)  更多評(píng)論   

            # re: 暑假第一次大練習(xí)賽總結(jié) 2010-07-10 08:54 treeboy

            弱弱地問(wèn)下:怎么把文章放在首頁(yè),我是新用戶(hù)  回復(fù)  更多評(píng)論   

            # re: 暑假第一次大練習(xí)賽總結(jié)[未登錄](méi) 2010-07-30 00:46 abilitytao

            @treeboy
            寫(xiě)完之后選擇首頁(yè)原創(chuàng)精華區(qū)  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久不见久久见免费视频7| 亚洲色欲久久久久综合网| 欧美久久一级内射wwwwww.| 久久av无码专区亚洲av桃花岛| 久久久亚洲精品蜜桃臀| 久久综合狠狠综合久久激情 | 国产三级久久久精品麻豆三级| 99久久成人18免费网站| 久久久久久午夜精品| 久久久WWW成人免费精品| 久久国产精品免费一区| 久久精品亚洲精品国产欧美| 久久精品国产亚洲AV香蕉| 午夜精品久久久久久影视777| 久久久av波多野一区二区| 思思久久99热免费精品6| 99久久99久久久精品齐齐| 久久精品国产亚洲AV电影| 久久一区二区三区免费| 97r久久精品国产99国产精| 思思久久好好热精品国产| 久久成人国产精品二三区| 国产三级观看久久| 色诱久久av| 99热成人精品免费久久| 久久亚洲AV成人出白浆无码国产| 国产成人精品白浆久久69| 亚洲伊人久久综合中文成人网| 国产成人综合久久久久久 | 久久国产精品成人影院| 色婷婷狠狠久久综合五月| 亚洲国产成人久久综合碰碰动漫3d| 精品国产乱码久久久久软件| 久久免费99精品国产自在现线 | 亚洲精品乱码久久久久久中文字幕| 人妻少妇久久中文字幕| 四虎影视久久久免费观看| 国内精品久久久久久不卡影院| 69SEX久久精品国产麻豆| 日韩人妻无码精品久久免费一| 亚洲欧洲久久av|