• <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>
            隨筆 - 40, 文章 - 0, 評論 - 19, 引用 - 0
            數據加載中……

            近日總結

                    從組隊做題開始到今天的題目做起來感覺比以往順手多了~
                    有些自己寫的小技巧能夠實現了,進步是有的,呵呵。
                    昨晚說要組隊做個T-SHIRT的樣子,呵呵,這方面實在不擅長,沒什么想法。。。
                    現在我是餓著肚子敲這些字的,中午一起來就12點了,汗,現在餓的根本做不進去題目,幸好已經做了2個題了,今天算是沒不完成任務。
                   
                   深度優先搜索的基本框架和出入還原已經基本掌握,
                   folyd算法的模板能夠理解。
                   高精度計算的書寫也已經較為熟練。
                   處理技巧的應用有所提高。

                   但是
                   英文水平實在。。。導致讀題理解題意又耗費時間又沒有效果,煩了還就干脆不讀了。。。
                   對比較復雜的邏輯判斷和字符串處理的題目做起來較慢,耗時間耗精力。
                   大部分算法沒有研究過,遇到問題就是暴力+小優化的想法。
                 
                   準備假期回家就是刷水題刷水題。。。

                   準備下學期好好學一下數據結構,掌握了之后去了解算法,寫代碼熟練程度也是很重要的,現在就應該處于水的階段。
                    
                   生活方面白天睡覺晚上閑著,實在是。。。更重要的是不吃飯下午可怎么做題啊。。。
                  

            posted @ 2008-07-23 16:28 hadn't 閱讀(151) | 評論 (0)編輯 收藏

            Pku 2142 The Balance

            說說這個題目,大家一般都將這個問題抽象成了數學問題來解決,但是我的解法是最直接的枚舉,觀察題意可知,對每一組數據應該有兩種 天平的出解情況,a*x==b*y+d和a*x+d==b*y
            對每一種情況按照人放東西的方法來枚舉,如果天平的一邊重了,就在另一邊放上那個a或者b
            最后比較兩組解哪個更滿足題目的答案并輸出即可。
            附上AC代碼

             1Problem: 2142  User: hongtaozhy 
             2Memory: 288K  Time: 0MS 
             3Language: G++  Result: Accepted 
             4
             5Source Code 
             6#include<stdio.h>
             7int x,y;
             8void meiju(int a , int b , int d ){
             9     
            10     x=0;y=0;
            11     while(1){
            12     if(a*x<b*y+d) {
            13     if (y==0&&(d-a*x)%b==0){
            14     y=(d-a*x)/b;
            15     break;
            16     }

            17      x++;   
            18      continue ;
            19     }

            20     if(a*x==b*y+d){                   
            21     break;
            22     }

            23     else
            24     y++;
            25     }

            26}

            27
            28int main(){
            29    
            30    int a , b , d;
            31    int xx,yy;
            32    while(scanf("%d%d%d",&a,&b,&d)&&a&&b&&d){
            33     meiju(a,b,d);
            34     xx=x;yy=y;
            35   //  printf("1:%d %d\n",x,y);
            36     meiju(b,a,d);
            37    // printf("2:%d %d\n",y,x);
            38     if(x+y<xx+yy)
            39     printf("%d %d\n",y,x);
            40     else
            41     if((x+y==xx+yy)&&a*x+b*y<a*xx+b*yy)
            42     printf("%d %d\n",y,x);
            43     else
            44     printf("%d %d\n",xx,yy);
            45    }

            46    
            47    
            48return 0;
            49}

            50
            51
            52

            posted @ 2008-07-19 20:55 hadn't 閱讀(461) | 評論 (0)編輯 收藏

            PKU 3337 Expression Evaluator

                 摘要: 這個題目A的很傻,一次接入三個字符,然后自己不停的來處理各種情況的效果,呵呵,各種格式是應該注意的,空格算是小陷阱?呵呵,所以一般復制那個sample再改就好了,freopen("a.in","r",stdin);freopen("a.out","w",stdout);這種文件讀入讀出的方式對觀察自己的輸出結果很有好處,推薦使用防止PE,呵呵,也許是北大的數據比較弱,這個同樣的題目在天大的OJ就過...  閱讀全文

            posted @ 2008-07-18 22:45 hadn't 閱讀(230) | 評論 (0)編輯 收藏

            PKU 3338 Rectangle Cutting

            呵呵,這個題目做出來時候很開心,因為用到了一個小技巧,就是標記格子時候用2進制的變化規則來存儲,這樣絕不會出現重復,而這個數字最大是2^50,所以要用GCC/G++的long long型C/C++的__int64來存儲。呵呵,這樣做就只需要判格子即可不需要判邊,最后一個DFS查數量就AC了,但是這是數據量范圍決定的,>64的就沒法這樣做了~注意輸入數字的大小順序和自己的程序不符的時候要判斷并互換才可以。
            附上AC代碼,呵呵,blog建立到現在有好幾十的閱讀量了,很高興。我在ACM上還是個最菜的級別~希望能通過這個Blog堅持下去,并與大家交流得以提高&&認識些朋友~呵呵,希望大家留個言哈``

             1#include<stdio.h>
             2#include<string.h>
             3long long cake[20][20];
             4int used[20][20];
             5long long now;
             6int w,h;
             7long long po(int a , int  b ){
             8     long long temp;
             9     temp = 1 ; 
            10     for(int i = 0 ; i < b ; i++){
            11     temp = 2*temp;
            12     }

            13     return temp;
            14}

            15
            16void dfs(int j , int i ){
            17if(i<0||j<0||i>=w||j>=h) return;
            18if(used[j][i]!=0)        return;
            19if(cake[j][i]!=now)      return;
            20used[j][i]=1;
            21dfs(j+1,i);
            22dfs(j-1,i);
            23dfs(j,i+1);
            24dfs(j,i-1);
            25}

            26
            27int main(){
            28    int count;
            29    int t;
            30    long long im;
            31    int n;
            32    int x1,x2,y1,y2;
            33    while(scanf("%d%d",&w,&h)&&w&&h){
            34    scanf("%d",&n);
            35    memset(cake,-1,sizeof(cake));
            36    memset(used,-1,sizeof(used));
            37    count=0;
            38    for(int i = 0 ; i < w ; i++ )
            39    for(int j = 0 ; j < h ; j++ )
            40   { cake[j][i] = 0 ;
            41     used[j][i] = 0 ;
            42   }

            43    for(int i = 0 ; i < n ; i++ ){
            44    scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
            45    
            46    if (x1>x2) {t=x1;x1=x2;x2=t;}
            47    if (y1>y2) {t=y1;y1=y2;y2=t;}
            48    
            49      forint j = x1 ; j < x2 ; j++ ){
            50           for ( int k = y1 ; k < y2 ; k++ ){
            51               cake[j][k] += po(2,i);
            52           }
                 
            53      }
                  
            54    }

            55    for(int i = 0 ; i < w ; i++ )
            56    for(int j = 0 ; j < h ; j++ )
            57    if(used[j][i]==0){
            58    now=cake[j][i];
            59    dfs(j,i);
            60    count++;
            61    }

            62    printf("%d\n",count);
            63    }

            64return 0;
            65}

            66
            67

            posted @ 2008-07-18 22:27 hadn't 閱讀(393) | 評論 (1)編輯 收藏

            Pku 1007 DNA Sorting

            在網上想尋找翻譯的時候發現了很多人寫得解題報告,原以為這個是動歸或者逆序數才能解決的問題,沒想到用選擇排序居然在0MS AC 了。。。
            使用了結構體的形式,發現這對排序和標記都有很好的效果!另外NUM這個標記和判斷好像是有些多余 呵呵。。。
            附上自己的代碼:

             1#include<stdio.h>
             2
             3struct Q{
             4    int x ;
             5    char y[51];   
             6    int num; 
             7}
            ;   
             8
             9Q a[100];
            10
            11int main(){
            12   
            13    int m , n ; 
            14    scanf("%d%d",&m,&n);
            15    for(int i = 0 ; i < n ; i ++ ){
            16        scanf("%s",a[i].y);
            17      a[i].x = 0 ;
            18       a[i].num=i;
            19    for(int j = 0 ; j < m - 1 ; j ++ ){
            20        
            21        for(int k = j+1 ; k < m ; k ++){
            22                if(a[i].y[k]<a[i].y[j])
            23                a[i].x++;
            24        }
                
            25    }
             
            26    
            27    }

            28    Q temp;
            29    for(int i = 0 ; i < n - 1 ; i ++ ){
            30        for(int j = i+1 ; j < n ; j ++ ){
            31                if(a[i].x>a[j].x){
            32                        temp=a[i];
            33                        a[i]=a[j];
            34                        a[j]=temp;
            35                }
              
            36                if(a[i].x == a[j].x && a[i].num < a[j].num){
            37                        temp=a[i];
            38                        a[i]=a[j];
            39                        a[j]=temp;
            40                }
                
            41        }
                
            42    }
                 
            43     
            44      for(int i = 0 ; i < n  ; i ++ ){
            45      printf("%s\n",a[i].y);
            46      }
                
            47     
            48 
            49    return 0;
            50}

            posted @ 2008-07-17 15:04 hadn't 閱讀(822) | 評論 (1)編輯 收藏

            PKU 1001 Exponentiation

                 摘要: http://acm.pku.edu.cn/JudgeOnline/problem?id=1001求高精度冪的題目,題目的難度在于處理如同 .00010 的輸入 和輸出的前導后導零的問題,還有小數點的位置可能在處理輸入時候被影響寫了好久代碼,但是同學用JAVA只需要一會就能搞定了,郁悶...附上AC代碼:   1Source Code  2&n...  閱讀全文

            posted @ 2008-07-16 00:43 hadn't 閱讀(1655) | 評論 (4)編輯 收藏

            USACO 又完成了1.1的兩個簡單題目

            通過這兩個題目練習了代碼的熟練程度
            發現了一個很好的網址:http://www.nocow.cn/index.php/USACO_Training
            一個OIER做的wiki 里面有USACO題目的翻譯和標程
            了解到了蔡勒公式 一個計算星期的公式。
            即隨便給一個日期,就能用這個公式推算出是星期幾。
            蔡勒公式如下:
            W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1
            詳見:
            http://baike.baidu.com/view/598757.htm

            附上兩題的代碼
             1 /*
             2 ID: hongtaozhy
             3 LANG: C++
             4 TASK: gift1
             5 */
             6 #include <stdio.h>
             7 #include <string.h>
             8 char name[10][15];
             9 char temp[15],temp2[15];
            10 int  money[10];
            11 int  rec;
            12 int key;
            13 int main () {
            14    
            15     freopen ("gift1.in""r",stdin);
            16     freopen ("gift1.out""w",stdout);
            17     int n ;
            18     int i ;
            19     scanf("%d",&n);
            20     
            21     forint i = 0 ; i < n ; i++ )
            22     scanf("%s",name[i]);
            23 
            24     while(scanf("%s",temp)!=EOF){
            25     key = 0;
            26     forint i = 0 ; i < n ; i++ ){
            27     if(!strcmp(name[i],temp)){
            28     rec = i ;
            29     break;
            30     }
            31     }
            32     int nn;
            33     int mon;
            34  
            35     
            36     scanf("%d%d",&mon,&nn);
            37     if( nn != 0 )
            38     key = mon - ( mon / nn ) * nn ;
            39     money[rec] -= mon ;
            40     money[rec] += key ; 
            41 
            42     forint i = 0 ; i < nn ; i++ ){
            43    
            44     scanf("%s",temp2);
            45      forint j = 0 ; j < n ; j++ ){
            46         if(!strcmp(name[j],temp2)){
            47         rec = j ;
            48         break;
            49     }
            50     }
            51 
            52     money[rec] += mon / (nn) ;
            53    
            54     
            55     }
            56     }
            57     
            58     for(int i = 0 ; i < n ; i++ ){
            59     printf("%s %d\n",name[i],money[i]);
            60     }
            61     
            62    
            63     return 0;
            64 }
            65 

             1 /*
             2 ID: hongtaozhy
             3 LANG: C++
             4 TASK: friday
             5 */
             6 #include <stdio.h>
             7 int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};
             8 int day[7];
             9 
            10 int main () {
            11     freopen ("friday.in""r",stdin);
            12     freopen ("friday.out""w",stdout);
            13     
            14     int i,j,l=6,n;
            15     scanf("%d",&n);
            16     n+=1900;
            17     for(i=1900;i<n;i++){
            18         if((i%100!=0 && i%4==0)||i%400==0)mon[1]++;
            19         for(j=0;j<12;j++){
            20             day[l]++;
            21             l+=mon[j];
            22             l%=7;
            23         }
            24         mon[1]=28;
            25     }
            26     printf("%d",day[6]);
            27     for(i=0;i<6;i++)
            28         printf(" %d",day[i]);
            29     printf("\n");
            30 
            31     return 0;
            32 }
            33 


            posted @ 2008-07-16 00:35 hadn't 閱讀(276) | 評論 (0)編輯 收藏

            開始試做USACO的題目

            過了兩個熟悉系統的題目,這個平臺的題目對算法的理解很有幫助,而且給出測試數據可以便于找到自己的錯誤,很好~
            想想這個是為了IOI準備的題庫,也就是中學生競賽所用,感覺到了大學才開始了解程序的我們,未免有些傷懷,不過沒什么,只要努力就好,希望這個假期和以后能夠為之而奮斗,提升解題和英語能力!
            2000+2000=hadn't !

             1 /*
             2 ID: hongtaozhy
             3 LANG: C++
             4 TASK: test
             5 */
             6 #include <stdio.h>
             7 int main () {
             8     freopen ("test.in""r",stdin);
             9     freopen ("test.out""w",stdout);
            10     int a, b;
            11     scanf ("%d %d"&a, &b);    /* the two input integers */
            12     printf ("%d\n", a+b);
            13     return 0;
            14 }
            15 

             1 /*
             2 ID: hongtaozhy
             3 LANG: C++
             4 TASK: ride
             5 */
             6 #include <stdio.h>
             7 #include <string.h>
             8  char a[7],b[7];
             9  int sum1,sum2;
            10 int main () {
            11     freopen ("ride.in""r",stdin);
            12     freopen ("ride.out""w",stdout);
            13     
            14    while(scanf("%s%s",a,b)==2){
            15    sum1=1;
            16    sum2=1;
            17 
            18    for(int i = 0 ; i< strlen(a) ; i++)
            19    sum1 *= a[i] - 'A' + 1;
            20    for(int i = 0 ; i< strlen(b) ; i++)
            21    sum2 *= b[i] - 'A' + 1;
            22 
            23    sum1 = sum1 % 47;
            24    sum2 = sum2 % 47;
            25    
            26 
            27     
            28    if(sum1 == sum2 )
            29    printf("GO\n");
            30    else printf("STAY\n");
            31    }
            32         
            33     return 0;
            34 }
            35 

            posted @ 2008-07-15 11:35 hadn't 閱讀(536) | 評論 (2)編輯 收藏

            僅列出標題
            共4頁: 1 2 3 4 
            热re99久久精品国99热| 久久精品视频一| 久久青青草原精品国产软件| 久久综合精品国产一区二区三区| 综合久久一区二区三区| 久久精品国产亚洲AV电影| 精品国产青草久久久久福利| 久久久久久伊人高潮影院| 久久综合丁香激情久久| 99精品久久久久久久婷婷| 香蕉久久一区二区不卡无毒影院| 国产精品久久久久久久久软件| av无码久久久久不卡免费网站| 欧美亚洲国产精品久久久久| 久久综合久久综合久久| 亚洲AV无一区二区三区久久| 精品久久久久久无码国产| 久久精品欧美日韩精品| 大香伊人久久精品一区二区| 精品久久国产一区二区三区香蕉| 久久av无码专区亚洲av桃花岛| 国产精品久久久久久久久久影院| 国产99久久久国产精品~~牛| 精品久久无码中文字幕| 国产A三级久久精品| 久久久久久久综合狠狠综合| 国产精品免费久久久久久久久 | 日本精品久久久久久久久免费| 99久久99久久| 欧美亚洲国产精品久久蜜芽| 久久久久国产精品| 国产精品久久免费| 精品综合久久久久久97超人| 国产精品久久久久久久久| 69久久夜色精品国产69| 国产韩国精品一区二区三区久久| 久久精品国产亚洲AV无码偷窥| 99精品国产99久久久久久97 | 麻豆AV一区二区三区久久| 国产精品亚洲综合久久| 色综合久久中文字幕无码|