• <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 閱讀(316) 評論(0)  編輯 收藏 引用

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

            導航

            統計

            常用鏈接

            留言簿(6)

            隨筆檔案

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            囯产精品久久久久久久久蜜桃| 伊人久久大香线蕉亚洲五月天| 精品一区二区久久久久久久网站| 国产精品久久成人影院| 国产精品VIDEOSSEX久久发布| 欧美亚洲另类久久综合婷婷| 中文字幕久久久久人妻| 国产成人AV综合久久| 久久久久久久91精品免费观看 | 伊人久久精品线影院| 精品久久久久久无码中文字幕 | 久久国产亚洲精品麻豆| 香蕉久久夜色精品国产2020| 亚洲精品国产成人99久久| 婷婷五月深深久久精品| 国产精品va久久久久久久| 国内精品久久久久久99| 亚洲精品乱码久久久久久久久久久久 | 日韩欧美亚洲综合久久| 国产午夜精品久久久久九九电影| 无码精品久久久久久人妻中字 | 久久亚洲私人国产精品vA| 久久无码一区二区三区少妇| 日本精品久久久久中文字幕8| 久久精品国产亚洲AV无码偷窥| 香蕉99久久国产综合精品宅男自 | 久久久无码精品亚洲日韩蜜臀浪潮| 青青青青久久精品国产| 青青国产成人久久91网| 久久国产高清字幕中文| 狠狠色丁香久久综合婷婷| 狠狠狠色丁香婷婷综合久久五月| 99久久久精品免费观看国产| 精品久久久久久成人AV| 99久久国语露脸精品国产| 国产一级做a爰片久久毛片| 久久精品一区二区国产| 久久精品国产只有精品66| 久久五月精品中文字幕| 伊人久久五月天| 久久青青草原亚洲av无码app |