您的位置:首页 > 其它

UVa 10763 - Foreign Exchange

2013-04-17 12:55 302 查看
寻找坐标的配对。所给坐标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 | 1

using 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: