UVa 10763 - Foreign Exchange

来源:互联网 发布:云南师范大学校园网络 编辑:程序博客网 时间:2024/05/22 12:11

寻找坐标的配对。所给坐标x y 一定有 y x与其对应。否则输出NO。可以用图的思想,用邻接表存放边正向和反向的的情况,并且一定要保证没有重复边。如果有与之相同的正向边

则自加1.相反边则减1.最后遍历所有情况。!= 0 return 0,  反之 return 1


// File Name: UVa10763.cpp// Author: Toy// Created Time: 2013年04月17日 星期三 12时21分03秒#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <cctype>#include <cmath>#include <string>#include <algorithm>#include <cstdlib>#include <iomanip>#include <list>#include <map>#include <set>#include <deque>#include <stack>#include <utility>#include <bitset>#define L(x) x << 1#define R(x) x << 1 | 1using namespace std;int Case, x, y, opt[1000][1000];int solve ( ) {    for ( int i = 0; i < 1000; ++i ) for ( int j = 0; j < 1000; ++j )     if ( opt[i][j] != 0 ) return 0;    return 1;}int main ( ) {    while ( cin >> Case && Case ) {memset ( opt, 0, sizeof ( opt ) );for ( int i = 1; i <= Case; ++i ) {    cin >> x >> y;    opt[x][y]++;    opt[y][x]--;}if ( solve ( ) ) cout << "YES" << endl;else cout << "NO" << endl;    }    return 0;}