1.先对所有点集按y的降序排列,存放到vector变量中 x1, x2, ... , xn y1>y2>...>yn 2.判断(xi,yi)(其中i=1,...,n)是否满足题目要求的“最大的”点 满足要求为:xi>xj,j=1,...,i-1; 因为点集已经按照y的降序进行排列,判断(xi,yi)时,只有y值比yi大的点(即该点在(xi,yi)的左上方或右上方)可能导致(xi,yi)不是“最大的点”,接着排除右上方的可能性,即满足上述要求 #include <iostream> #include <vector> #include <algorithm> using namespace std; bool cmp(pair<int,int> point1, pair<int, int> point2) { if(point1.second > point2.second) return true; else return false; } int main(int argc, char** argv) { int n; cin>>n; vector<pair<int,int> > points; for(int i=0; i<n; i++) { int x,y; cin>>x>>y; points.push_back(make_pair(x,y)); } sort(points.begin(), points.end(), cmp); int max_x = 0; vector<pair<int, int> >::iterator it; for(it=points.begin(); it!=points.end(); it++) { if(it->first > max_x) { cout<<it->first<<" "<<it->second<<endl; max_x = it->first; } } return 0; }
点赞 评论

相关推荐

友友们,我实在是不太明白,校招的话现在大多也是提前实习,然后转正也是需要考核的,考核通过才能转正,那这跟实习转正有什么区别啊
苦闷的仰泳鲈鱼刷了1...:提前实习,是让你提前熟悉业务的,后续是入职后可以减少试用期的(大部分是包入职的);转正实习,要是hc不够或者其他原因,让你正式offer可能都没有,这个风险很大。 ---个人看法和了解到的。
点赞 评论 收藏
分享
面了100年面试不知...:今年白菜这么多,冬天可以狂吃了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务