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;
}
给你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;
}
相关文章推荐
- 交换学生(Foreign Exchange,UVa 10763)
- UVA-10763-交换学生-水题
- Foreign Exchange (交换学生)UVA 10763
- 习题5-4 交换学生(Foreign Exchange, UVa 10763)
- 5-4 UVA 10763 Foreign Exchange交换学生
- uva 10763 交换学生
- UVA 10763 Foreign Exchange 交换学生
- UVa 交换学生
- UVA 10763 Foreign Exchange 出国交换 pair+map
- 关于“交换学生(Foreign Exchange, UVa 10391)”的讨论
- UVA 10763 Foreign Exchange 出国交换 pair+map
- 交换学生(Uva 10391)
- UVA10763:Foreign Exchange(交换学生)
- 5-4交换学生uva10763
- uva:10763 - Foreign Exchange(排序)
- UVa 10763
- UVa - 10763 Foreign Exchange
- uva10763 - Foreign Exchange
- Uva - 10763 - Foreign Exchange
- UVa 10763 - Foreign Exchange