zoukankan      html  css  js  c++  java
  • UVA 1595 multimap 的应用

    这道题目的大意是给出一系列的点,问:是否能找到一个对称轴,使得所有点左右对称。

    这是multimap的简单应用,把纵坐标看作key,相应的所有点纵坐标相等的点的横坐标看作value,然后把value的值相加,除以点的个数,得到一个值,这个值可能就是对称轴,然后计算所有的点,看是否是相同的对称轴,思路比较简单。

    #include<iostream>
    #include<map>
    #include<string>
    #include<string.h>
    #include<math.h>
    #include<set>
    using namespace std;
    typedef multimap<int,int> M;
    int main(){
         int t,n,a,b;
         cin>>t;
         M m;
         set<float> ss;
         while(t--){
            cin>>n;
            m.clear();
            ss.clear();
            for(int i=0;i<n;i++){
                cin>>a>>b;
                m.insert(pair<int,int>(b,a));
            }
            int sum=0,c=0,flag=0;
            float d;
            M::iterator it;
            pair<M::iterator,M::iterator> ret;
            for(it=m.begin();it!=m.end();){
                    sum=0;
                    c=0;
              //  cout<<it->first<<"=>";
                ret=m.equal_range(it->first);
               for(it=ret.first;it!=ret.second;it++){
                   sum+=(*it).second;
                   c++;
            }
            d=sum/c;
            ss.insert(d);
            if(ss.size()>1){
                cout<<"NO"<<endl;
                flag=-1;
                break;
              }
            }
                if(flag==0)
                    cout<<"YES"<<endl;
    
         }
        return 0;
    }
    

      

  • 相关阅读:
    仿google的suggest
    renderjs主动发起通讯
    数据库设计原则(转载)
    SqlBulkCopy批量插入
    NPOI使用word模板
    visual studio 2010与NUNIT集成调试
    bond
    linux 内核参数优化
    Linux清除用户登陆及历史命令
    nginx 常用请求
  • 原文地址:https://www.cnblogs.com/wintersong/p/5166222.html
Copyright © 2011-2022 走看看