• ural 1129 (求数据)


    先记下来。在test 7wa了。如果谁有数据希望可以指点下。thx.

      1 // File Name: 1129.cpp
      2 // Author: Missa
      3 // Created Time: 2013/3/12 星期二 17:31:53
      4 
      5 #include<iostream>
      6 #include<cstdio>
      7 #include<cstring>
      8 #include<algorithm>
      9 #include<cmath>
     10 #include<queue>
     11 #include<stack>
     12 #include<string>
     13 #include<vector>
     14 #include<cstdlib>
     15 #include<map>
     16 #include<set>
     17 using namespace std;
     18 #define CL(x,v) memset(x,v,sizeof(x));
     19 #define R(i,st,en) for(int i=st;i<en;i++)
     20 
     21 const int maxn = 1e2+5;
     22 bool g[maxn][maxn];
     23 bool gr[maxn][maxn];
     24 int deg[maxn];
     25 char ans[maxn][maxn];
     26 int n;
     27 void dfs(int x)
     28 {
     29     R(i,1,n+1)
     30     {
     31         if(g[x][i])
     32         {
     33             g[x][i]=g[i][x]=0;
     34             dfs(i);
     35             ans[x][i]='G';
     36             ans[i][x]='Y';
     37         }
     38     }
     39 }
     40 int main()
     41 {
     42     while(~scanf("%d",&n))
     43     { 
     44         CL(g,0);
     45         CL(deg,0);
     46         CL(ans,0);
     47         CL(gr,0);
     48         int x,v;
     49         R(i,1,n+1)
     50         {
     51             scanf("%d",&x);
     52             while(x--)
     53             {
     54                 scanf("%d",&v);
     55                 if(g[i][v]) continue;
     56                 g[i][v]=g[v][i]=1;
     57                 gr[i][v]=gr[v][i]=1;
     58                 deg[i]++;deg[v]++;
     59             }
     60         }
     61         vector<int>od;
     62         od.clear();
     63         R(i,1,n+1)
     64         {
     65             if(deg[i]&1)
     66                 od.push_back(i);
     67         }
     68         R(i,0,od.size())
     69         {
     70             int u=od[i];
     71             if(deg[u]&1==0) continue;
     72             R(j,i+1,od.size())
     73             {
     74                 int v=od[j];
     75                 if(deg[v]&1 && g[u][v]==0)
     76                 {
     77                     g[u][v]=g[v][u]=1;
     78                     deg[u]++;
     79                     deg[v]++;
     80                     break;
     81                 }
     82             }
     83         }
     84         R(i,1,n+1)
     85             if(deg[i]&1)
     86             {
     87                 dfs(i);
     88                 break;
     89             }
     90         R(i,1,n+1)
     91         {
     92             bool flag=0;
     93             R(j,1,n+1)
     94                 if(g[i][j])
     95                 {
     96                     flag=1;
     97                     break;
     98                 }
     99             if(flag)
    100                 dfs(i);
    101         }
    102         R(i,1,n+1)
    103         {
    104             R(j,1,n+1)
    105                 if(gr[i][j])
    106                     printf("%c ",ans[i][j]);
    107             printf("\n");
    108         }
    109     }
    110     return 0;
    111 }
  • 相关阅读:
    SQl语句学习笔记(二)
    Adaboost 算法
    降维PCA技术
    scanf 格式化字符串详解
    大小端模式和位域详解(转载)
    推荐系统开源软件列表汇总和点评(转载)
    遗传算法入门(转载)
    大白话解析模拟退火算法(转载)
    机器学习相关——协同过滤(转载)
    python面向对象之单例模式
  • 原文地址:https://www.cnblogs.com/Missa/p/2956877.html
Copyright © 2020-2023  润新知