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

      

  • 相关阅读:
    SQL Server 备份方案
    Azure 学习笔记
    SEO – 大杂烩
    Asp.net core 学习笔记之 Tag Helper
    读取注册表
    DOM学习历程-3
    inno setup给控制的那边加图标
    C++生成exe安装到别人那边无法使用缺少dll
    inno setup 最后
    inno setup
  • 原文地址:https://www.cnblogs.com/wintersong/p/5166222.html
Copyright © 2011-2022 走看看