zoukankan      html  css  js  c++  java
  • hdu 1224 Free DIY Tour

    点击打开链接

    pass[k] 存k的前驱

    map[i][j] 用力标记 i 到 j  的路可以通过。。


    #include<stdio.h>
    #include<string.h>
    int pass[105];
    int judge(int k)
    {
        while(pass[k]!=k)
        {
            k=pass[k];
        }
        if(pass[k]==1)
            return 1;
        else
            return 0;
    }
    int main()
    {
        int t,n,point[105],m,map[105][105],i,j,k,v,ans[105],max;
        scanf("%d",&t);v=1;
        while(t--)
        {
            if(v>1)
                printf("\n");
            memset(map,0,sizeof(map));
            scanf("%d",&n);
            for(i=1;i<=n;i++)
                scanf("%d",&point[i]);
            point[n+1]=0;
            scanf("%d",&m);
            while(m--)
            {
                scanf("%d%d",&i,&j);
                map[i][j]=1;//
            }
            max=0;
            pass[1]=1;
            for(i=2;i<=n+1;i++)
            {
                max=-1;
                k=i;
                for(j=1;j<i;j++)
                {
                    if(map[j][i]&&point[j]>max&&judge(j))
                    {k=j;max=point[j];}
                }
                if(max>-1)
                    point[i]+=max;
                pass[i]=k;
            }
            printf("CASE %d#\n",v++);
            printf("points : %d\n",point[n+1]);
            j=0;
            k=n+1;ans[j++]=1;
            while(pass[k]!=k)
            {
                ans[j++]=pass[k];
                k=pass[k];
            }
            printf("circuit : ");
            for(i=j-1;i>0;i--)
                printf("%d->",ans[i]);
            printf("%d\n",ans[0]);
        }
        return 0;
    }


  • 相关阅读:
    2017普及组D1T3 洛谷P3956 棋盘
    2017提高组D1T1 洛谷P3951 小凯的疑惑
    Title
    Title
    Title
    Title
    Title
    Title
    Title
    Title
  • 原文地址:https://www.cnblogs.com/yyf573462811/p/6365383.html
Copyright © 2011-2022 走看看