zoukankan      html  css  js  c++  java
  • UVa 10763

      题目大意:留学生配对,如果甲想从A去B,乙想从B去A,则甲乙能完成配对。现在给出n个留学生,判断能否完全配对。

      最开始考虑用个二维数组维护信息,不过题中数据可达500000,不可能开那么大的二维数组,只好通过排序进行处理了。

     1 #include <cstdio>
     2 #include <algorithm>
     3 #define MAXN 500000+10
     4 using namespace std;
     5 
     6 struct Route
     7 {
     8     int s, e;
     9 };
    10 
    11 Route go[MAXN], back[MAXN];
    12 
    13 bool cmp(const Route &a, const Route &b)
    14 {
    15     if (a.s != b.s)   return a.s < b.s;
    16     return a.e < b.e;
    17 }
    18 
    19 int main()
    20 {
    21 #ifdef LOCAL
    22     freopen("in", "r", stdin);
    23 #endif
    24     int n;
    25     while (scanf("%d", &n) != EOF && n)
    26     {
    27         int g_cnt = 0, b_cnt = 0;
    28         for (int i = 0; i < n; i++)
    29         {
    30             int x, y;
    31             scanf("%d%d", &x, &y);
    32             if (x < y)
    33             {
    34                 go[g_cnt].s = x;
    35                 go[g_cnt].e = y;
    36                 g_cnt++;
    37             }
    38             else
    39             {
    40                 back[b_cnt].s = y;
    41                 back[b_cnt].e = x;
    42                 b_cnt++;
    43             }
    44         }
    45         if (g_cnt != b_cnt)
    46         {
    47             printf("NO
    ");
    48             continue;
    49         }
    50         sort(go, go+g_cnt, cmp);
    51         sort(back, back+b_cnt, cmp);
    52         bool yes = true;
    53         for (int i = 0; i < g_cnt; i++)
    54             if (go[i].s != back[i].s || go[i].e != back[i].e)
    55             {
    56                 yes = false;
    57                 break;
    58             }
    59         if (yes)   printf("YES
    ");
    60         else printf("NO
    ");
    61     }
    62     return 0;
    63 }
    View Code

      由于写程序时不小心,WA了两次...无语了。看到别人说欧拉回路,考虑节点的入度和出度进行判度,虽然不对但是能AC(效率想必会比上面的提高吧),应该是OJ测试数据没考虑到吧

  • 相关阅读:
    ZOJ 3735 Cake(区间DP,最优三角剖分)
    POJ 1185 炮兵阵地 (状态压缩DP)
    POJ 3415 Common Substrings (后缀数组,长度不小于k的公共子串的个数)
    NSNumberFormatter 千分符
    遭遇String.getBytes()
    HDFS数据的Checksum
    hadoop mapreduce作业流程概论
    HDFS 安全模式
    hadoop的dfs.replication
    hadoop升级
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3203572.html
Copyright © 2011-2022 走看看