您的位置:首页 > 其它

UVA10763交换学生

2014-11-21 16:41 411 查看
题意:

给你N组关系,每组关系是a,b,最后问你所有的a,b出现的次数和所有的b,a出现的此时是否全部都一样。

思路:

水题,直接开了个二维的map标记,map<int ,map<int ,int> >mark,最后在检查一遍是否所有的mark[a][b] == mark[b][a],就ok了。

#include<map>

#include<stdio.h>

using namespace std;

map<int ,map<int ,int> >mark;

int edge[500005][2];

int main ()

{

int n ,i;

while(~scanf("%d" ,&n) && n)

{

mark.clear();

for(i = 1 ;i <= n ;i ++)

{

scanf("%d %d" ,&edge[i][0] ,&edge[i][1]);

mark[edge[i][0]][edge[i][1]] ++;

}

int mk = 0;

for(i = 1 ;i <= n && !mk;i ++)

if(mark[edge[i][0]][edge[i][1]] != mark[edge[i][1]][edge[i][0]])

mk = 1;

!mk ? printf("YES\n") : printf("NO\n");

}

return 0;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: