UVA10763交换学生

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


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




#include
#include


using namespace std;


map >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;
}







你可能感兴趣的:(ACM_UVA)