• UVa 10763 (STL) Foreign Exchange


    看到大神说location的值不会超过1000,所以这就简单很多了,用一个deg数组记录下来每个点的度,出度-1,入读+1这样。

    最后判断每个点的度是否为0即可。

    至于为什么会这样,据说是套数据套出来的,比如在代码里加一句if(a >= 1000) for(;;),get新技能!

    如果按正常来做的话,我能想到的就是遍历map了。

     1 #include <cstdio>
     2 #include <cstring>
     3 
     4 const int maxn = 1000;
     5 int deg[maxn];
     6 
     7 int main()
     8 {
     9     //freopen("in.txt", "r", stdin);
    10 
    11     int n;
    12     while(scanf("%d", &n) == 1 && n)
    13     {
    14         memset(deg, 0, sizeof(deg));
    15         int a, b;
    16         for(int i = 0; i < n; i++)
    17         {
    18             scanf("%d%d", &a, &b);
    19             deg[a]++; deg[b]--;
    20         }
    21         bool ok = true;
    22         for(int i = 0; i < maxn; i++) if(deg[i]) ok = false;
    23         printf("%s
    ", ok ? "YES" : "NO");
    24     }
    25 
    26     return 0;
    27 }
    代码君
  • 相关阅读:
    MySQL:逻辑库与表管理
    MySQL:初识数据库
    MySQL:安装与配置
    C语言之指针
    C语言之二维数组
    C语言之冒泡排序
    C语言之数组
    C语言之函数的声明
    C语言之带有返回值的函数
    C语言之全局变量和局部变量
  • 原文地址:https://www.cnblogs.com/AOQNRMGYXLMV/p/4453633.html
Copyright © 2020-2023  润新知