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

            隨筆檔案

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久人人爽人人爽人人AV东京热| 亚洲精品白浆高清久久久久久| 伊人久久精品影院| 四虎国产精品免费久久久 | 久久精品国产半推半就| 久久久久亚洲av无码专区喷水 | 久久国产精品一国产精品金尊| 久久天天躁狠狠躁夜夜不卡| 久久久久久伊人高潮影院| 久久久这里只有精品加勒比| 久久久久亚洲AV无码观看| 久久久久久久精品妇女99| 一本久道久久综合狠狠爱| 久久九九精品99国产精品| 国产三级久久久精品麻豆三级| 99国产欧美精品久久久蜜芽| 国内精品久久久久影院免费| 国产高清美女一级a毛片久久w| 国产精品九九久久免费视频 | 97久久国产露脸精品国产| 亚洲AV日韩精品久久久久久| 99精品久久精品一区二区| 国产精品内射久久久久欢欢| 一本色道久久综合狠狠躁篇| 亚洲欧洲日产国码无码久久99| 久久久久成人精品无码中文字幕 | 久久91精品国产91| 久久精品aⅴ无码中文字字幕重口| 久久综合丁香激情久久| 午夜精品久久久久久影视riav| 久久精品国产亚洲AV无码麻豆 | 亚洲婷婷国产精品电影人久久| 无码人妻精品一区二区三区久久久 | 久久99精品久久久久久9蜜桃 | 久久久久人妻一区精品果冻| 亚洲精品乱码久久久久久中文字幕| 久久96国产精品久久久| 大香伊人久久精品一区二区 | 国产成人久久精品一区二区三区| 国产A级毛片久久久精品毛片| 久久婷婷五月综合成人D啪|