萌新前来求教
5010查看
lanqiao5809420973
2024-11-02 00:11
  • 问题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
全部回复(1)
cc
429
cc
L429
2024-11-25 16:54

提供一个 Hack 数据:

2
2 1
2 2
copy
回复
你的回复