• <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)寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令

            #

            POJ 2641 Billiard 簡單的數(shù)學(xué)計算題(速度分解)

            這道題目的意思是,給你一個長為a寬為b的球桌,現(xiàn)在給它一個初速度,使得它在若干次碰撞后回到初始位置(題目里默認(rèn)為小桌的中心)
            現(xiàn)在告訴你小球和垂直邊碰撞的次數(shù)m,以及和水平邊碰撞的次數(shù)n,還有整個過程的時間s,讓你求出碰撞的初速度以及出球的角度;

            列方程求解:
            b*n=v*sin(θ)*s

            a*m=v*cos(θ)*s



            所以得到tan(θ)=(b*n)/(a*m);
            可解出θ;

            然后在代入原方程求解v即可;


            #include<iostream>
            #include
            <cmath>
            using namespace std;

            const double Pi=3.141592653;

            int main ()
            {

                
            double a,b,s,m,n;
                
            while(scanf("%lf%lf%lf%lf%lf",&a,&b,&s,&m,&n))
                
            {
                    
            if(a==0&&b==b&&s==0&&m==0&&n==0)
                        
            break;
                    
            double degree;
                    
            double resultdegree;
                    degree
            =atan(b*n/(a*m));
                    resultdegree
            =atan(b*n/(a*m))/Pi*180;
                    
            double v;
                    v
            =(b*n)/(sin(degree)*s);
                    printf(
            "%.2lf %.2lf\n",resultdegree,v);
                }

                system(
            "pause");
                
            return 0;
                
            }

            posted @ 2009-03-07 16:37 abilitytao 閱讀(410) | 評論 (0)編輯 收藏

            POJ 2619 Delta-wave 激起你思維的火花

            這個題居然要用到三維坐標(biāo),太神奇了~
            這個代碼其實(shí)我也是借鑒網(wǎng)上牛人寫的,感覺寫的非常好,略作修改之后就拿過來了;
            至于那個坐標(biāo)公式,還有一小部分沒有弄懂,下次可以繼續(xù)研究下呵;


            每個點(diǎn)都可以用三向坐標(biāo)來表示
            最短路徑=兩點(diǎn)各坐標(biāo)差的絕對值之和決定的。用三向坐標(biāo)
            表示后,你會發(fā)現(xiàn)最短路徑總是穿過3種線段,步數(shù)=各線段和=坐標(biāo)差之和.有時侯把圖轉(zhuǎn)過幾個角度或把元素分分類或掠取幾條線都可能有新發(fā)現(xiàn)。


            以上轉(zhuǎn)自:http://hi.baidu.com/sunshine_0316/blog/item/834b3f39b58f3622b9998f6f.html


            #include<iostream>
            #include
            <cmath>
            #include
            <cstdio>
            #include
            <algorithm>
            using namespace std;

            int main() 

                
            int n1,n2; 
                
            int i,alevel,aright,aleft,blevel,bright,bleft,steps; 

                scanf(
            "%d%d",&n1,&n2);
                alevel
            =1
                blevel
            =1
                
            for(i=1;;i=i+2
                

                    
            if(n1-i<=0
                    

                        aright
            =(i-n1)/2+1
                        aleft
            =(n1+1)/2
                        
            break
                    }
             
                    alevel
            ++
                    n1
            =n1-i; 
                }
             
                
            for(i=1;;i=i+2
                

                    
            if(n2-i<=0
                    

                        bright
            =(i-n2)/2+1
                        bleft
            =(n2+1)/2
                        
            break
                    }
             
                    blevel
            ++
                    n2
            =n2-i; 
                }

                steps
            =abs(alevel-blevel)+abs(aleft-bleft)+abs(aright-bright);
                printf(
            "%d\n",steps); 

                
            return 0;
            }

            posted @ 2009-03-07 01:10 abilitytao 閱讀(365) | 評論 (0)編輯 收藏

            POJ 2603-Brave balloonists 求BigInt的最大公約數(shù)(用數(shù)論知識解決)

            原來這道題用數(shù)論的方法如此簡單啊,這樣就不用進(jìn)行大數(shù)操作了 呵呵;
            數(shù)論算法如下:


            若正整數(shù)n可分解為(p1^a1)*(p2^a2)*…*(pk^ak)
            其中pi為兩兩不同的素數(shù),ai為對應(yīng)指數(shù)
            n的約數(shù)個數(shù)為(1+a1)*(1+a2)*….*(1+ak)

            做完不禁贊嘆到,此法甚妙~定要掌握之 呵呵

            #include<iostream>
            #include
            <cmath>
            #include
            <algorithm>
            using namespace std;


            int a[10001];

            int main ()
            {

                
            int n;
                
            int i;
                
            int j;
                
            for(i=1;i<=10;i++)
                
            {

                    scanf(
            "%d",&n);
                    
            for(j=2;;j++)
                    
            {

                        
            while(n%j==0&&n!=1)
                        
            {
                            a[j]
            ++;
                            n
            /=j;
                        }

                        
            if(n==1)
                            
            break;
                    }




                }

                
            int result=1;
                
            for(i=2;i<=10000;i++)
                
            {

                    
            if(a[i]!=0)
                    
            {

                        result
            =result*(a[i]+1);
                    }

                }

                printf(
            "%d\n",result%10);
                system(
            "pause");
                
            return 0;

            }


             


            posted @ 2009-03-07 00:36 abilitytao 閱讀(1213) | 評論 (1)編輯 收藏

            POJ 3458-Colour Sequence 水題-類brute force算法

            今天晚上都是水題,直接上代碼吧;

            #include<iostream>
            #include
            <cmath>
            #include
            <cstring>
            #include
            <algorithm>
            using namespace std;

            char up[2000];
            char down[2000];
            char origin[2000];


            int main ()
            {

                
            int n;
                
            int i;
                
            int pos1;
                
            int pos2;
                scanf(
            "%d",&n);
                
            for(i=1;i<=n;i++)
                
            {

                    scanf(
            "%s%s%s",origin,up,down);
                    pos1
            =0;
                    pos2
            =0;
                    
            int len=strlen(up);
                    
            while(1)

                    
            {
                        
            if(up[pos2]=='*'||down[pos2]=='*')
                        
            {
                            pos2
            ++;
                            pos1
            ++;
                
                        }

                        
            else if(origin[pos1]==up[pos2]||origin[pos1]==down[pos2])
                        
            {
                            pos2
            ++;
                            pos1
            ++;
                        }

                        
            else 
                            pos2
            ++;

                        
            if(pos1==strlen(origin))
                        
            {
                            printf(
            "win\n");
                            
            break;
                        }

                        
            if(pos2>len)
                        
            {
                            printf(
            "lose\n");
                            
            break;
                        }

                        
                    }

                }

                system(
            "pause");
                
            return 0;
            }

            posted @ 2009-03-06 23:06 abilitytao 閱讀(940) | 評論 (0)編輯 收藏

            POJ 3425-Customer support 水題

            根據(jù)題目直接做就好了,沒什么要說的,一次AC;
            //This is the Source Code for POJ 3425
            #include<iostream>
            #include
            <cmath>
            #include
            <cstring>
            using namespace std;

            int f[1000001];
            int main ()
            {

                
            int n;
                
            int a,b,c;
                
            int sum=0;
                
            int i;
                
            while(scanf("%d",&n)!=EOF)
                
            {
                    memset(f,
            0,sizeof(f));
                    sum
            =0;
                    
            for(i=1;i<=n;i++)
                    
            {
                        scanf(
            "%d%d%d",&a,&b,&c);
                        
            if(b==0)
                        
            {
                            sum
            +=10;
                            
            continue;
                        }

                        
            else if(b==1&&c==0)
                        
            {
                            
            if(f[a]==0)
                            
            {
                                sum
            +=20;
                                f[a]
            =1;
                            }


                            
            else if(f[a]==1)
                            
            {
                                sum
            +=30;


                            }

                        }

                        
            else if(b==1&&c==1)
                        
            {
                            
            if(f[a]==0)
                            
            {
                                sum
            +=40;
                                f[a]
            =1;
                            }

                            
                            
            else if(f[a]==1)
                            
            {
                                sum
            +=50;
                                
                                
                            }

                        }

                    }

                    printf(
            "%d\n",sum);
                }

                
            return 0;
            }

            posted @ 2009-03-06 22:03 abilitytao 閱讀(799) | 評論 (0)編輯 收藏

            POJ 3488-Arne Saknussemm 又一道密碼題,模擬

            密碼題真的很有意思啊,不過現(xiàn)在做的還算簡單題吧,以后有空要做做RSA公鑰算法...
            這個題就是簡單模擬一下,值得注意的一點(diǎn)是判斷'\'的時候,要用'\\',因為計算機(jī)把它當(dāng)作轉(zhuǎn)義字符來處理的 呵呵 開始我還以為我的編譯器出問題了呢。

            #include <iostream>
            #include 
            <cmath>
            #include 
            <cstring>
            #include 
            <cstdio>
            #include 
            <algorithm>

            using namespace std;

            char matrix[1000][1000];
            char line[2000];

            int main ()
            {

                
            int n;
                
            int i,j;
                
            int len;
                
            int pos=0;
                
            while(cin>>n)
                
            {

                    pos
            =0;
                    
            for(i=0;i<n;i++)
                        cin
            >>matrix[i];
                    len
            =strlen(matrix[0]);
                    
            int flag=0;
                    
            for(j=0;j<len;j++)
                    
            {

                        
            for(i=0;i<n;i++)
                        
            {
                            
            if(matrix[i][j]!='_')
                                flag
            =1;

                            
            if(flag==1)

                            
            {
                                line[pos]
            =matrix[i][j];
                                pos
            ++;
                            }

                        }


                    }

                    line[pos]
            ='\0';
                    reverse(line,line
            +pos);
                    
            for(i=0;i<pos;i++)
                    
            {

                        
            if(line[i]=='_')
                        
            {
                            printf(
            " ");
                            line[i]
            =' ';
                            
            continue;
                        }

                        
            else if(line[i]=='\\')
                        
            {
                            cout
            <<'\n';
                            
            continue;
                        }

                        
            else 
                            cout
            <<line[i];
                    }

                    cout
            <<endl<<endl;
                }

                
            return 0;
            }

            posted @ 2009-03-06 21:39 abilitytao 閱讀(837) | 評論 (0)編輯 收藏

            POJ 3051-Satellite Photographs 圖論(深度優(yōu)先搜索DFS)

            這道題和3620基本上是一樣的,記得當(dāng)是我做3620的時候,收獲真是大啊,不過現(xiàn)在只能用水題來形容這道3051了,呵呵。
            要讓更多的題目成為水題,這也是我的目標(biāo);

            #include<iostream>
            #include
            <cmath>
            #include
            <cstdio>
            using namespace std;

            char input[2000][2000];
            int val[2000][2000];
            int num;


            void dfs(int x,int y)
            {

                
            if(val[x][y]==0)
                    
            return;
                
            else if(val[x][y]==1)
                
            {
                    val[x][y]
            =0;
                    num
            ++;
                    dfs(x,y
            +1);
                    dfs(x
            +1,y);
                    dfs(x,y
            -1);
                    dfs(x
            -1,y);

                }

                

            }




            int main ()
            {
                
            int w,h;
                
            int i,j;
                
            char temp;
                
            int max=0;
                num
            =0;
                scanf(
            "%d%d",&w,&h);
                cin.ignore();
                
            for(i=1;i<=h;i++)
                
            {

                    
            for(j=1;j<=w;j++)
                    
            {

                        cin
            >>temp;
                        
            if(temp=='*')
                            val[i][j]
            =1;
                        
            else
                            val[i][j]
            =0;
                    }

                }

                
            for(i=1;i<=h;i++)

                
            {
                    
            for(j=1;j<=w;j++)
                    
            {
                        num
            =0;

                        dfs(i,j);
                        
            if(num>max)
                            max
            =num;

                    }

                }

                printf(
            "%d\n",max);

                

            return 0;
            }

            posted @ 2009-03-06 20:17 abilitytao 閱讀(1115) | 評論 (0)編輯 收藏

            POJ 3536-Beer Refrigerator 水題,暴搜

            剛開始想過用暴搜的,但是有點(diǎn)擔(dān)心會超時,一直還以為有什么數(shù)學(xué)上的方法呢;可是....

            #include<iostream>
            #include
            <algorithm>
            #include
            <cstdio>
            #include
            <cmath>
            using namespace std;


            int main ()
            {

                
            int min;
                
            int n;
                
            int i,j,k;
                
            int mi,mj,mk;
                
            while(scanf("%d",&n)!=EOF)
                
            {
                    min
            =1000000000;
                    
            for(i=1;i<=sqrt((double)n)+1;i++)
                    
            {

                        
            if(n%i==0)
                        
            {

                            
            for(j=1;j<=n/i;j++)
                            
            {

                                
            if(n%(i*j)==0)
                                
            {
                                    k
            =n/(i*j);

                                    
            if(i*j+i*k+j*k<min)
                                    
            {
                                        min
            =i*j+i*k+j*k;
                                        mi
            =i;mj=j;mk=k;
                                    }

                                }

                            }

                        }

                    }

                    printf(
            "%d %d %d",mi,mj,mk);

                }

                
            return 0;
            }




                


             

            posted @ 2009-03-06 19:31 abilitytao 閱讀(541) | 評論 (0)編輯 收藏

            POJ 3543-iChess 水題

                 摘要:   閱讀全文

            posted @ 2009-03-06 10:51 abilitytao 閱讀(337) | 評論 (0)編輯 收藏

            POJ-1002 487-3279——字符的映射和串匹配問題

                 摘要: 題目大意:這道題是中文的,題意就略了吧;我的思路是:先把字符串里面的-過濾掉,然后再用轉(zhuǎn)換函數(shù),將字符映射到響應(yīng)的數(shù)字,然后排序,記錄,輸出結(jié)果;開始我本來打算用map容器來做這個題的,可是discuss里面說這個方法容易超時,所以最后還是選用了if語句,雖然長一點(diǎn)但是保證效率,呵呵;心得嘛,我發(fā)現(xiàn)百度上寫的那篇關(guān)于sscanf用法的文章有誤,我在這里給它修正一下,那里提到過周星星同學(xué)的用法,里面...  閱讀全文

            posted @ 2009-03-05 13:10 abilitytao 閱讀(2428) | 評論 (6)編輯 收藏

            僅列出標(biāo)題
            共42頁: First 34 35 36 37 38 39 40 41 42 
            久久亚洲国产精品一区二区| 一级女性全黄久久生活片免费| 久久精品极品盛宴观看| 日本久久久精品中文字幕| 精品少妇人妻av无码久久| 亚洲级αV无码毛片久久精品 | 久久久WWW成人免费毛片| 97久久天天综合色天天综合色hd| 久久妇女高潮几次MBA| 日产精品久久久久久久| 久久午夜夜伦鲁鲁片免费无码影视| 欧美午夜精品久久久久久浪潮| 99久久人人爽亚洲精品美女| 99久久久久| 久久只有这里有精品4| 伊人色综合久久天天人守人婷| 久久久久久国产a免费观看黄色大片 | 久久久久久久尹人综合网亚洲| 久久国产精品国产自线拍免费| 日本道色综合久久影院| 精品国产91久久久久久久a| 国产午夜精品理论片久久 | 久久99这里只有精品国产| 久久成人国产精品免费软件| 久久A级毛片免费观看| 成人免费网站久久久| 久久久久综合中文字幕| 中文字幕无码久久精品青草| 欧美丰满熟妇BBB久久久| 狠狠色丁香久久综合婷婷| 日本道色综合久久影院| 蜜桃麻豆WWW久久囤产精品| 无码AV波多野结衣久久| 国产精品美女久久久免费| 久久精品国产乱子伦| 亚洲国产精品久久久久网站| 久久香综合精品久久伊人| 亚洲欧美精品伊人久久| 亚洲AV日韩精品久久久久久久| 99久久精品免费观看国产| 亚洲日本va中文字幕久久|