求优化
  • 板块灌水区
  • 楼主cygnus_beta
  • 当前回复15
  • 已保存回复15
  • 发布时间2021/5/8 20:38
  • 上次更新2023/11/4 23:32:13
查看原帖
求优化
452531
cygnus_beta楼主2021/5/8 20:38

题目

最后一个点吸氧1.01s

代码:

#include<map>
#include<cstdio>
#include<vector>
using namespace std;

map<int,int>people;
vector<pair<int,int> >frs;
pair<int,int>p,pm;

inline bool exist(){
    for(vector<pair<int,int> >::iterator iter=frs.begin();iter!=frs.end();iter++)
        if((iter->first==p.first and iter->second==p.second) or (iter->second==p.first and iter->first==p.second))return true;
    return false;
}

inline pair<int,int> max_(pair<int,int>p1,pair<int,int>p2){
    return p1.second>p2.second?p1:p2;
}

inline pair<int,int> min_(pair<int,int>p1,pair<int,int>p2){
    return p1.second<p2.second?p1:p2;
}

signed main(){

    scanf("%d%d",&p.first,&p.second);
    while(scanf("%d%d",&p.first,&p.second)!=EOF)
        if(not exist()){
            frs.push_back(p);
            people[p.first]++;
            people[p.second]++;
        }
    p.first=p.second=pm.first=pm.second=0;
    for(map<int,int>::iterator iter=people.begin();iter!=people.end();iter++)pm=min_(pm,*iter),p=max_(p,*iter);
    if(pm.second==p.second)printf("%d",people.end()->first);
    else printf("%d",p.first);

    return 0;
}
2021/5/8 20:38
加载中...