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

            Toj 1069 Erdos Numbers 解題

            這個題目就是一個bfs的問題。在數據讀取上需要稍加處理。
            toj和poj的數據都有一個不是很符合規矩然后造成我這個題re了好多次。
            期中有一個數據在最后一個人名結束后跟著一個空格然后是:這樣我每次讀取判斷最后一個是:結束就錯了
              1#include<vector>
              2#include<map>
              3#include<iostream>
              4#include<string>
              5#include<string.h>
              6using namespace std;
              7struct C{int p,ans;};
              8vector<int> data[11000];
              9map<string,int> name;
             10int use[11000];
             11C Q[11000];
             12char str[300];
             13int paper[300];
             14string a,b;
             15int main()
             16{
             17    int n,m,l=0,i,head,tail,L,l1,NO,j,f,KASE=0;
             18    //freopen("erdos.in","r",stdin);
             19    //freopen("erdos.txt","w",stdout);
             20    string nn;
             21    nn="Erdos*P.";
             22    while(1){
             23    scanf("%d%d",&n,&m);
             24    if(n==0&&m==0)break;
             25    l=0;
             26    for(i=0;i<10000;i++)data[i].clear();
             27    name.clear();
             28    memset(use,-1,sizeof(use));
             29    memset(Q,0,sizeof(Q));
             30    l=0;
             31    while(n--)
             32    {
             33        f=0;NO=0;
             34        while(1)
             35        {
             36            scanf("%s",str);
             37            l1=strlen(str);
             38            str[l1-1]='*';
             39            a=str;
             40            scanf("%s",str);
             41            l1=strlen(str);
             42            if(str[l1-1]==':')f=1;
             43            if(str[l1-1]=='.')f=1;
             44            str[l1-1]=0;
             45            a=a+str;
             46            if(name.count(a)==0)
             47            {
             48                name[a]=l++;
             49                //cout << a << endl;
             50            }

             51            paper[NO++]=name[a];
             52            if(f)
             53            {
             54                gets(str);
             55                //str=getline();
             56                break;
             57            }

             58        }

             59        
             60        for(i=0;i<NO;i++)
             61            for(j=0;j<NO;j++)if(i!=j)data[paper[i]].push_back(paper[j]);
             62    }

             63    if(name.count(nn)==0)name[nn]=l++;
             64    Q[0].p=name[nn];
             65    Q[0].ans=0;
             66    use[name[nn]]=0;
             67    head=tail=0;
             68    tail++;
             69    while(head!=tail)
             70    {
             71        L=Q[head].p;
             72        l=data[L].size();
             73        for(i=0;i<l;i++)
             74            if(use[data[L][i]]==-1)
             75            {
             76                use[data[L][i]]=Q[head].ans+1;
             77                Q[tail].p=data[L][i];
             78                Q[tail++].ans=Q[head].ans+1;
             79            }
                
             80        head++;
             81    }

             82    printf("Database #%d\n",++KASE);
             83    while(m--)
             84    {
             85            
             86            scanf("%s",str);
             87            printf("%s ",str);
             88            l1=strlen(str);
             89            str[l1-1]='*';
             90            a=str;
             91            scanf("%s",str);
             92            printf("%s: ",str);
             93            a=a+str;
             94            if(name.count(a)==0)printf("infinity\n");
             95            else if(use[name[a]]==-1)printf("infinity\n");
             96            else printf("%d\n",use[name[a]]);
             97    }

             98    printf("\n");
             99    }

            100    return 0;
            101}

            102
            103
            104

            posted on 2008-07-15 19:09 gong 閱讀(313) 評論(0)  編輯 收藏 引用

            <2008年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統計

            常用鏈接

            留言簿(6)

            隨筆檔案

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久久久久久女国产乱让韩| 亚洲一区二区三区日本久久九| 97精品伊人久久大香线蕉| 久久久精品久久久久影院| 久久国产色AV免费看| 久久精品国产WWW456C0M| 久久久久99这里有精品10 | 99久久国产亚洲综合精品| 久久久噜噜噜久久熟女AA片| 久久久久久国产精品无码下载| 新狼窝色AV性久久久久久| 久久本道综合久久伊人| 久久国产免费观看精品3| 久久无码国产| 99久久精品费精品国产| 99精品久久久久久久婷婷| 狠狠色丁香婷婷综合久久来来去| 亚洲色大成网站www久久九| 久久久久亚洲AV无码专区网站| 97久久精品无码一区二区| 麻豆av久久av盛宴av| 久久久久亚洲AV无码去区首| 久久精品九九亚洲精品天堂| 久久一日本道色综合久久| 香蕉久久夜色精品国产尤物| 亚州日韩精品专区久久久| 精品久久久久久无码人妻热| 99久久精品国产一区二区| 久久免费线看线看| 久久精品一区二区国产| 久久人人爽爽爽人久久久| 国内精品久久久久影院一蜜桃 | 国产精品久久久久aaaa| 久久精品9988| 久久香蕉综合色一综合色88| av国内精品久久久久影院| 久久综合丁香激情久久| 国产精品欧美久久久久无广告| 四虎国产精品免费久久5151| 国产激情久久久久影院小草| 久久久久国色AV免费观看|