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

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

            #

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

            這道題目的意思是,給你一個長為a寬為b的球桌,現在給它一個初速度,使得它在若干次碰撞后回到初始位置(題目里默認為小桌的中心)
            現在告訴你小球和垂直邊碰撞的次數m,以及和水平邊碰撞的次數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 閱讀(409) | 評論 (0)編輯 收藏

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

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


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


            以上轉自: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 閱讀(363) | 評論 (0)編輯 收藏

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

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


            若正整數n可分解為(p1^a1)*(p2^a2)*…*(pk^ak)
            其中pi為兩兩不同的素數,ai為對應指數
            n的約數個數為(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 閱讀(1211) | 評論 (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 水題

            根據題目直接做就好了,沒什么要說的,一次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 閱讀(798) | 評論 (0)編輯 收藏

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

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

            #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 圖論(深度優先搜索DFS)

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

            #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 閱讀(1113) | 評論 (0)編輯 收藏

            POJ 3536-Beer Refrigerator 水題,暴搜

            剛開始想過用暴搜的,但是有點擔心會超時,一直還以為有什么數學上的方法呢;可是....

            #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 閱讀(537) | 評論 (0)編輯 收藏

            POJ 3543-iChess 水題

                 摘要:   閱讀全文

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

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

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

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

            僅列出標題
            共42頁: First 34 35 36 37 38 39 40 41 42 
            91精品国产色综合久久| 色婷婷久久综合中文久久一本| 91精品国产91久久综合| 伊人久久综合热线大杳蕉下载| 亚洲v国产v天堂a无码久久| 亚洲综合伊人久久大杳蕉| 久久99久久无码毛片一区二区| 色偷偷88888欧美精品久久久| 国产亚州精品女人久久久久久| 亚洲色大成网站WWW久久九九| 91精品国产色综久久| 伊人久久大香线蕉综合影院首页| 亚洲国产天堂久久综合网站| av色综合久久天堂av色综合在| 欧美伊香蕉久久综合类网站| 亚洲级αV无码毛片久久精品| 久久亚洲精品无码观看不卡| 青青国产成人久久91网| 亚洲午夜久久久久久久久久| 婷婷久久精品国产| 久久国产免费直播| 亚洲国产成人久久精品影视 | 精品乱码久久久久久久| 久久久久国产精品麻豆AR影院| 99久久免费国产特黄| 国产精品女同久久久久电影院| 囯产极品美女高潮无套久久久| 欧美激情精品久久久久久久| 久久e热在这里只有国产中文精品99| 韩国三级大全久久网站| 国产成人无码久久久精品一| 色综合久久中文字幕无码| 狠狠色丁香久久婷婷综合| 精品久久久久久国产| 久久久国产精华液| 中文字幕久久精品无码| 久久精品国产乱子伦| 午夜欧美精品久久久久久久| 亚洲熟妇无码另类久久久| 久久天天躁狠狠躁夜夜躁2O2O| 色婷婷综合久久久久中文|