zoukankan      html  css  js  c++  java
  • hdu 1689 求奇环bfs关键是层次图

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<queue>
    using namespace std;
    #define inf 0x3fffffff
    #define N 1100
    #define NN 21000
    struct node {
    int u,v,next;
    }bian[NN*2];
    int head[N],yong;
    void init() {
    memset(head,-1,sizeof(head));
    yong=0;
    }
    void addedge(int u,int v) {
    bian[yong].u=u;
    bian[yong].v=v;
    bian[yong].next=head[u];
    head[u]=yong++;
    }
    struct enode{
    int step,u;
    };
    int vis[N][2];
    int n;
    int bfs(int u) {
      int i;
      enode kk,cur,next;
      kk.u=u;
      kk.step=0;
      memset(vis,0,sizeof(vis));
      queue<enode>q;
      vis[u][0]=1;//刚开始时偶数
      q.push(kk);
      while(!q.empty()) {
        cur=q.front();
        q.pop();
        if(cur.step>=3) {
            if(cur.step%2==1&&cur.u==u)//最后是奇数
                return cur.step;
        }
       for(i=head[cur.u];i!=-1;i=bian[i].next) {
           int v=bian[i].v;
           next.u=v;
           next.step=cur.step+1;
        if(!vis[v][next.step%2]) {//标记一个点的奇偶是否出现过
            vis[v][next.step%2]=1;
            q.push(next);
        }
       }
      }
      return inf;
    }
    int main(){
        int n,m,i,k,t,u,v,minn,kk=0;
        scanf("%d",&t);
        while(t--) {
            scanf("%d%d",&n,&m);
       init();
            for(i=1;i<=m;i++) {
                scanf("%d%d",&u,&v);
               addedge(u,v);addedge(v,u);
            }
            minn=inf;
            for(i=1;i<=n;i++) {
                k=bfs(i);
                if(minn>k)
                    minn=k;
                    if(minn==3)break;
            }
            if(minn==inf)
                printf("Case %d: Poor JYY.
    ",++kk);
            else
            printf("Case %d: JYY has to use %d balls.
    ",++kk,minn);
        }
    return 0;}
    

  • 相关阅读:
    ios-pch文件的手动添加
    iOS远程消息推送自我整理版
    iOS远程消息推送
    苹果App store 2015最新审核标准公布(2015.3)
    App上线基本流程
    iOS中常用的正则表达式
    如何获取App当前版本号
    添加Appicon的方法
    键盘弹出
    iOS9适配中出现的一些常见问题
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410541.html
Copyright © 2011-2022 走看看