• 算法习题---5-4交换学生(UVa10763)


    一:题目

    有一组学生,他们手中分别有自己学校和想要去的目标学校(A,B)。为了成功的交换学生,必须保证这一组学生中必须每两个人之间满足
    s1 (A,B) 和 s2 (B,A)。即两者原来和目标学校相对应,可以实现交换

    (一)样例输入

    10
    1 2
    2 1
    3 4
    4 3
    100 200
    200 100
    57 2
    2 57
    1 2
    2 1
    10
    1 2
    3 4
    5 6
    7 8
    9 10
    11 12
    13 14
    15 16
    17 18
    19 20
    0

    (二)样例输出

    YES
    NO

    二:代码实现

    #define _CRT_SECURE_NO_WARNINGS
    #include <iostream>
    #include <vector>
    #include <map>
    
    using namespace std;
    
    int main()
    {
        freopen("data5_4_h.in", "r", stdin);
        freopen("data5_4_h.out", "w", stdout);
    
        int num;
        while (cin >> num && num!=0)
        {
            map<int, int> first_id_map, second_id_map;
            vector<int> first_id_vec;
    
            //信息获取
            for (int i = 0; i < num; i++)
            {
                int f, s;
                cin >> f >> s;
                first_id_map[f] = s;
                second_id_map[s] = f;
                first_id_vec.push_back(f);
            }
            //信息匹配
            bool flag = true;
            for (int i = 0; i < num; i++)
                if (first_id_map[first_id_vec[i]] != second_id_map[first_id_vec[i]])
                {
                    flag = false;
                    break;
                }
            if (flag)
                cout << "YES" << endl;
            else
                cout << "NO" << endl;
        }
    
        freopen("CON", "r", stdin);
        freopen("CON", "w", stdout);
        return 0;
    }
  • 相关阅读:
    vue项目中使用定时器,离开页面时清除定时器
    不能在循环中使用res.send(err);
    React使用require加载图片失败
    实验五 单元测试
    实验四 代码评审
    UML 建模工具的安装与使用
    结对编程 第二阶段
    结对编程
    GIT 代码版本管理
    结构化方法与面向对象化方法的比较
  • 原文地址:https://www.cnblogs.com/ssyfj/p/11539624.html
Copyright © 2020-2023  润新知