• <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无码久久久久不卡蜜桃| 少妇人妻88久久中文字幕| 99re久久精品国产首页2020| 精品国产婷婷久久久| 精品久久久无码人妻中文字幕| 久久综合精品国产二区无码| 久久99精品久久久久久秒播| 久久综合亚洲欧美成人| 久久久久久久亚洲精品| 久久精品亚洲日本波多野结衣| 99久久婷婷国产一区二区| 欧洲精品久久久av无码电影| 久久WWW免费人成—看片| 久久国产热精品波多野结衣AV| 久久综合九色综合久99| 久久―日本道色综合久久| 亚洲精品无码成人片久久| 精品乱码久久久久久夜夜嗨| 国产精品一区二区久久国产| 精品无码久久久久国产动漫3d| 久久五月精品中文字幕| 久久亚洲国产精品一区二区| 久久国产色AV免费看| 欧洲人妻丰满av无码久久不卡| 国内精品伊人久久久影院| 久久久久国产日韩精品网站| 久久国产高清一区二区三区| 天天久久狠狠色综合| 青青草原综合久久大伊人精品| 久久男人Av资源网站无码软件| 久久婷婷五月综合色奶水99啪| 久久夜色撩人精品国产| 久久久久亚洲?V成人无码| 久久精品亚洲精品国产欧美| 精品国产91久久久久久久a| 久久精品国产国产精品四凭 | 久久久久久久综合综合狠狠| 99久久99久久精品国产片|