• <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>
            隨筆-65  評論-6  文章-0  trackbacks-0
            /*哈希*//*31MS*/
             1 #include <cstdio>
             2 #include <string>
             3 using namespace std;
             4 
             5 double exchange[30][30];
             6 unsigned int currencys[30];
             7 int n,m;
             8 
             9 unsigned int ELFHash(char *str){
            10     unsigned int hash = 0;
            11     unsigned int x    = 0;
            12     while (*str){
            13         hash = (hash << 4) + (*str++);
            14         if ((x = hash & 0xF0000000L) != 0){
            15             hash ^= (x >> 24);
            16             hash &= ~x;
            17         }
            18     }
            19     return (hash & 0x7FFFFFFF);
            20 }
            21 inline int findSame(char a[]){
            22     int i,p=ELFHash(a);
            23     for(i=0;i<n;i++)
            24         if(currencys[i]==p)
            25             return i;
            26     return -1;
            27 }
            28 bool floyd(){
            29     int i,j,k;
            30     for(k=0;k<n;k++)
            31         for(i=0;i<n;i++)
            32             for(j=0;j<n;j++)
            33                 if(exchange[i][k]*exchange[k][j]>exchange[i][j])
            34                     exchange[i][j]=exchange[i][k]*exchange[k][j];
            35     for(i=0;i<n;i++)
            36             if(exchange[i][i]>1)
            37                 return true;
            38     return false;
            39 }
            40 int main(){
            41     #ifdef ONLINE_JUDGE
            42     #else
            43         freopen("in.txt","r",stdin);
            44     #endif
            45     int no=1;
            46     while (scanf("%d",&n)&&n){
            47         memset(exchange,0,sizeof(exchange));
            48         int i;
            49         char curren[40];
            50         for(i=0;i<n;i++){
            51             scanf("%s",curren);
            52             currencys[i]=ELFHash(curren);
            53         }
            54         scanf("%d",&m);
            55         while (m--){
            56             char str[2][40];
            57             double ex;
            58             scanf("%s%lf%s",str[0],&ex,str[1]);
            59             exchange[findSame(str[0])][findSame(str[1])]=ex;
            60         }
            61         if(floyd()) printf("Case %d: Yes\n",no++);
            62         else printf("Case %d: No\n",no++);
            63 
            64     }
            65     return 0;
            66 }
            /*map容器*/ /*62MS*/
             1 #include <cstdio>
             2 #include <string>
             3 #include <map>
             4 using namespace std;
             5 
             6 map<string,int>mapmap;
             7 double exchange[30][30];
             8 int n,m;
             9 
            10 bool floyd(){
            11     int i,j,k;
            12     for(k=0;k<n;k++)
            13         for(i=0;i<n;i++)
            14             for(j=0;j<n;j++)
            15                 if(exchange[i][k]*exchange[k][j]>exchange[i][j])
            16                     exchange[i][j]=exchange[i][k]*exchange[k][j];
            17     for(i=0;i<n;i++)
            18             if(exchange[i][i]>1)
            19                 return true;
            20     return false;
            21 }
            22 int main(){
            23     #ifdef ONLINE_JUDGE
            24     #else
            25         freopen("in.txt","r",stdin);
            26     #endif
            27     int no=1;
            28     while (scanf("%d",&n)&&n){
            29         memset(exchange,0,sizeof(exchange));
            30         mapmap.clear();
            31         int i;
            32         char currencys[40];
            33         for(i=0;i<n;i++){
            34             scanf("%s",currencys);
            35             mapmap[currencys]=i;
            36         }
            37         scanf("%d",&m);
            38         while (m--){
            39             char str[2][40];
            40             double ex;
            41             scanf("%s%lf%s",str[0],&ex,str[1]);
            42             exchange[mapmap[str[0]]][mapmap[str[1]]]=ex;
            43         }
            44         if(floyd()) printf("Case %d: Yes\n",no++);
            45         else printf("Case %d: No\n",no++);
            46         mapmap.clear();
            47     }
            48     return 0;
            49 }
            /*普通字符串處理*//*46MS*/
             1 #include <string.h>
             2 #include <cstdio>
             3 
             4 char currencys[30][40];
             5 double exchange[30][30];
             6 int n,m;
             7 int findSame(char a[]){
             8     int i;
             9     for(i=0;i<n;i++)
            10         if(strcmp(a,currencys[i])==0)
            11             return i;
            12     return -1;
            13 }
            14 bool floyd(){
            15     int i,j,k;
            16     for(k=0;k<n;k++)
            17         for(i=0;i<n;i++)
            18             for(j=0;j<n;j++)
            19                 if(exchange[i][k]*exchange[k][j]>exchange[i][j])
            20                     exchange[i][j]=exchange[i][k]*exchange[k][j];
            21     for(i=0;i<n;i++)
            22             if(exchange[i][i]>1)
            23                 return true;
            24     return false;
            25 }
            26 int main(){
            27     #ifdef ONLINE_JUDGE
            28     #else
            29         freopen("in.txt","r",stdin);
            30     #endif
            31     int no=1;
            32     while (scanf("%d",&n)&&n){
            33         memset(exchange,0,sizeof(exchange));
            34         int i;
            35         for(i=0;i<n;i++)
            36             scanf("%s",currencys[i]);
            37         scanf("%d",&m);
            38         while (m--){
            39             char str[2][40];
            40             double ex;
            41             scanf("%s%lf%s",str[0],&ex,str[1]);
            42             exchange[findSame(str[0])][findSame(str[1])]=ex;
            43         }
            44         if(floyd()) printf("Case %d: Yes\n",no++);
            45         else printf("Case %d: No\n",no++);
            46     }
            47     return 0;
            48 }

            posted on 2012-03-23 12:52 Leo.W 閱讀(239) 評論(0)  編輯 收藏 引用
            国内精品九九久久精品| 好久久免费视频高清| 久久午夜免费视频| 色综合久久综合中文综合网| 久久精品国产网红主播| 国产精品99久久不卡| 国产精品久久久久免费a∨| 久久66热人妻偷产精品9| 国产亚洲精午夜久久久久久| 亚洲av伊人久久综合密臀性色| 99久久无码一区人妻a黑| 亚洲а∨天堂久久精品| 青青青国产精品国产精品久久久久 | 亚洲一本综合久久| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久强奷乱码老熟女网站| 久久久久国产精品人妻| 国产精品永久久久久久久久久| 77777亚洲午夜久久多人| 久久最新免费视频| a级毛片无码兔费真人久久| 人妻久久久一区二区三区| 无码人妻少妇久久中文字幕| 色综合久久中文色婷婷| 久久久久女人精品毛片| 亚洲欧美成人综合久久久 | 热RE99久久精品国产66热| 久久精品国产亚洲沈樵| 久久狠狠高潮亚洲精品| 久久亚洲欧美国产精品| 久久久久久无码Av成人影院| 香蕉久久av一区二区三区| 狠狠综合久久AV一区二区三区 | 99久久免费国产精品| 久久99精品国产99久久6男男| 97精品伊人久久大香线蕉app| 亚洲国产精品久久电影欧美| 亚洲色大成网站www久久九| 亚洲成色WWW久久网站| 无码超乳爆乳中文字幕久久| 亚洲第一极品精品无码久久|