2 条题解

  • 1
    @ 2026-4-8 12:29:12

    #include<bits/stdc++.h> #define int long long using namespace std; struct s1{ int r,wz,zdl; }s[200010]; int n,k,a,b; bool cmp(s1 s2,s1 s3){ return s2.zdl<s3.zdl; } bool cmp2(s1 s2,s1 s3){ return s2.wz<s3.wz; } signed main(){ cin>>n>>k; for(int i=1;i<=n;i++){ cin>>s[i].zdl; s[i].wz=i; } sort(s+1,s+1+n,cmp); s[1].r=0; for(int i=1;i<=n;i++){ if(s[i].zdl>s[i-1].zdl){ s[i].r=i-1; }else{ s[i].r=s[i-1].r; } } sort(s+1,s+1+n,cmp2); while(k--){ cin>>a>>b; if(s[a].zdl>s[b].zdl){ s[a].r--; }else if(s[a].zdl<s[b].zdl){ s[b].r--; } } for(int i=1;i<=n;i++){ cout<<s[i].r<<" "; } return 0; }

    • 1
      @ 2026-4-4 17:25:56
      #include<bits/stdc++.h>
      #define int long long
      using namespace std;
      struct s1{
      int r,wz,zdl;
      }s[200010];
      int n,k,a,b;
      bool cmp(s1 s2,s1 s3){
      return s2.zdl<s3.zdl;
      }
      bool cmp2(s1 s2,s1 s3){
      return s2.wz<s3.wz;
      }
      signed main(){
      cin>>n>>k;
      for(int i=1;i<=n;i++){
      cin>>s[i].zdl;
      s[i].wz=i;
      }
      sort(s+1,s+1+n,cmp);
      s[1].r=0;
      for(int i=1;i<=n;i++){
      if(s[i].zdl>s[i-1].zdl){
      s[i].r=i-1;
      }else{
      s[i].r=s[i-1].r;
      }
      }
      sort(s+1,s+1+n,cmp2);
      while(k--){
      cin>>a>>b;
      if(s[a].zdl>s[b].zdl){
      s[a].r--;
      }else if(s[a].zdl<s[b].zdl){
      s[b].r--;
      }
      }
      for(int i=1;i<=n;i++){
      cout<<s[i].r<<" ";
      }
      return 0;
      }
      
      
      • 1

      信息

      ID
      4971
      时间
      1000ms
      内存
      128MiB
      难度
      2
      标签
      递交数
      26
      已通过
      16
      上传者