码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 10763

时间:2015-12-21 18:22:39      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

#include<stdio.h>
#include<stdlib.h>
#include<map>
#include<string.h>
using namespace std;
int main(){
   multimap<int,int> mapp;
   int n,a,b;
   
   
   while(scanf("%d",&n)==1&&n){
        mapp.clear();
    for(int i=0;i<n;i++){
        scanf("%d%d",&a,&b);
        bool flag=true;
        multimap<int,int>::iterator it;
        for(it=mapp.find(b);it!=mapp.end()&&it->first==b;it++){
            if(it->second==a){
                flag=false;
                mapp.erase(it);
                break;
            }
        }

        if(flag==true)
        mapp.insert(make_pair(a, b));

    }
    if(mapp.empty())
        printf("YES\n");
    else
        printf("NO\n");

   }
  return 0;
}

 这道题一开始是用map做的,但是map要求key值唯一,不能对如:

4

1 2

1 2 

2 1

2 1

这样的数据进行处理,但是 multimap 是允许多个key存在的。

关于multimap 以后要好好看看!!!

底层是红黑树什么的,不太懂。

UVA 10763

标签:

原文地址:http://www.cnblogs.com/wintersong/p/5063757.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!