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

            gzwzm06

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              1 隨筆 :: 52 文章 :: 17 評論 :: 0 Trackbacks
            準確的話,需要用__i64,不用也可以過
              1 #include <cstdio>
              2 
              3 const int SIZE = 101 ;
              4 const int MAXN = 14999 ;
              5 
              6 struct HashItem
              7 {
              8     int m_num ;
              9     int m_cnt ;
             10     HashItem *next ;
             11 };
             12 
             13 HashItem hash[MAXN] , g_Temp[10001] ;
             14 int g_Pos ;
             15 int ans ;
             16 
             17 //生成x的所有可能值
             18 int gArray[SIZE] ;
             19 int P3(const int& x)
             20 {
             21     return ( x * x * x ) ;
             22 }
             23 void Produce()
             24 {
             25     for ( int i = 0 , j = 0 ; i < SIZE ; ++i )
             26     {
             27         if ( i - 50 != 0 )
             28         {
             29             gArray[j++] = P3(i - 50) ;
             30         }
             31     }
             32 }
             33 
             34 void Insert( const int& num )
             35 {
             36     int tmp ;
             37     if ( num < 0 )
             38         tmp = num * -1 ;
             39     else
             40         tmp = num ;
             41     int key = tmp % MAXN ;
             42     HashItem *ptr = &hash[key] ;
             43     
             44     while ( ptr && ptr->m_cnt != 0 )
             45     {
             46         if ( ptr->m_num == num )
             47         {
             48             ptr->m_cnt++ ;
             49             return ;
             50         } 
             51         ptr = ptr->next ;
             52     }
             53     
             54     if ( hash[key].m_cnt == 0 )
             55     {
             56         hash[key].m_num = num ;
             57         hash[key].m_cnt = 1 ;
             58     }
             59     else {
             60         ptr = &g_Temp[g_Pos++] ;
             61         ptr->m_cnt = 1 ;
             62         ptr->m_num = num ;
             63         ptr->next = hash[key].next ;
             64         hash[key].next = ptr ;
             65     }
             66     
             67 }
             68 
             69 int Find( const int& num )
             70 {
             71     int tmp ;
             72     if ( num < 0 )
             73         tmp = num * -1 ;
             74     else
             75         tmp = num ;
             76     int key = tmp % MAXN ;
             77     HashItem *ptr = &hash[key] ;
             78     
             79     if ( ptr->m_cnt == 0 )
             80     {
             81         return 0 ;
             82     }
             83     
             84     while ( ptr )
             85     {
             86         if ( ptr->m_num == num )
             87         {
             88             return ptr->m_cnt ;
             89         }
             90         
             91         ptr = ptr->next ;
             92     }
             93     
             94     return 0 ;
             95 }
             96 //計算左邊三個的值,并判斷是否滿足條件
             97 void CalLeft(const int& a, const int& b, const int& c)
             98 {
             99     int i , j , k ;
            100     int num ;
            101     for ( i = 0 ; i < SIZE - 1 ; ++i )
            102     {
            103         for ( j = 0 ; j < SIZE - 1 ; ++j )
            104         {
            105             for ( k = 0 ; k < SIZE - 1 ; ++k )
            106             {
            107                 num = gArray[i] * a + gArray[j] * b + gArray[k] * c ;
            108                 num = num * -1 ;
            109                 ans += Find(num) ;
            110             }
            111         }
            112     }
            113 }
            114 //計算右邊的值并存入hash
            115 void CalRight(const int& a, const int& b)
            116 {
            117     int i , j ;
            118     int num ;
            119     
            120     for ( i = 0 ; i < SIZE - 1 ; ++i )
            121     {
            122         for ( j = 0 ; j < SIZE - 1 ; ++j )
            123         {
            124             num = gArray[i] * a + gArray[j] * b ;
            125             Insert(num) ;
            126         }
            127     }
            128     
            129 }
            130 
            131 void Init()
            132 {
            133     for ( int i = 0 ; i < MAXN ; ++i )
            134     {
            135         hash[i].next = NULL ;
            136         hash[i].m_cnt = 0 ;
            137     }
            138     
            139     g_Pos = 0 ;
            140     ans = 0 ;
            141 }
            142 
            143 int main()
            144 {
            145    // freopen("in", "r", stdin) ;
            146     int a, b, c, d, e ;
            147     
            148     Produce() ;
            149     
            150     while ( scanf("%d%d%d%d%d", &a, &b, &c, &d, &e) != EOF )
            151     {
            152         Init() ;
            153         //轉化為 -(a + b + c) = d + e
            154         CalRight( d, e ) ; 
            155         CalLeft( a, b, c ) ; 
            156                         
            157         printf("%d\n", ans) ;
            158     }
            159     
            160     return 0 ;
            161 }
            162 



            posted on 2008-11-14 11:07 閱讀(890) 評論(0)  編輯 收藏 引用 所屬分類: Hash應用
            国内精品久久国产大陆| 九九精品久久久久久噜噜| 人妻无码αv中文字幕久久琪琪布| 久久国产精品-久久精品| 久久综合狠狠综合久久综合88| 深夜久久AAAAA级毛片免费看| 精品999久久久久久中文字幕 | 香蕉久久一区二区不卡无毒影院| 久久亚洲国产精品成人AV秋霞| 久久久久亚洲AV无码去区首| yellow中文字幕久久网| 精品无码人妻久久久久久| 久久青青草原精品国产不卡| 亚洲国产精品成人AV无码久久综合影院 | 久久影院午夜理论片无码| 久久亚洲欧洲国产综合| 亚洲精品国产第一综合99久久| 久久精品无码一区二区三区| 俺来也俺去啦久久综合网| 久久线看观看精品香蕉国产| 久久成人永久免费播放| 一本一本久久a久久精品综合麻豆| 久久综合视频网| 久久久久久毛片免费播放| 99久久国产主播综合精品| 婷婷久久综合| 国产精品久久久天天影视| 国产精品成人99久久久久91gav| 亚洲国产成人精品91久久久 | 久久久精品国产| 国产亚洲综合久久系列| 国产成人无码精品久久久久免费| 久久人搡人人玩人妻精品首页| 99久久无色码中文字幕人妻| …久久精品99久久香蕉国产| 欧美亚洲另类久久综合婷婷| 亚洲精品无码久久一线| 久久久青草青青亚洲国产免观| 日韩中文久久| 精品午夜久久福利大片| 久久精品国产亚洲AV忘忧草18 |