萌新前来求教
5010查看
- 问题1:为什么每个瓷器重新循环遍历之前瓷器的高度反而会有问题?
- 问题2:现在这个是九十分的版本,还有哪些不足?
- 代码思路:按照降序排d,升序排h,然后遍历之前所有瓷器的最大值来检验是否独特
#include<bits/stdc++.h> using namespace std; struct cq{ int d,h; }a[100005]; bool func(cq a,cq b){ if(a.d==b.d){ return a.h<b.h; } return a.d>b.d; } int main(void){ int n=0,cnt=0,m=0 ; cin>>n; for(int i=0;i<n;i++){ cin>>a[i].d>>a[i].h; } stable_sort(a,a+n,func); // for(int i=0;i<n;i++){ // cout<<a[i].d<<" "<<a[i].h<<endl; // } for(int i=0,j=0;i<n;i++){ if(a[i].d==a[i+1].d){ continue; } m=max(a[i].h,m); // for(j=0;j<i;j++){ // m=max(m,a[j].h); // } if(m==a[i].h){ cnt++; } // for(j=i+1;j<n;j++){ // if(a[j].h>=a[i].h){ // break; // } // } // if(j==n){ // cnt++; // } // j=0; } cout<<cnt; return 0; }
copy
#课程问答
| 关注
你的回复
请
登录
后回复