2 条题解

  • 0
    @ 2025-10-8 16:55:45
    #include<bits/stdc++.h>
    using namespace std;
    struct node{int x,y;}a[2600],b[2600];
    bool cmp(node n1,node n2){return n1.x!=n2.x?n1.x>n2.x:n1.y>n2.y;}
    int main()
    {
        int n,m;scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)scanf("%d%d",&a[i].x,&a[i].y);
        for(int i=1;i<=m;i++)scanf("%d%d",&b[i].x,&b[i].y);
        sort(a+1,a+n+1,cmp);
        sort(b+1,b+m+1,cmp);
        int ans=0;
        for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            if(b[j].y>0&&b[j].x>=a[i].x&&b[j].x<=a[i].y)
            {
                ans++;b[j].y--;break;
            }
            if(b[j].x<a[i].x)break;
        }
        printf("%d\n",ans);
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:55:39
      #include<bits/stdc++.h>
      using namespace std;
      struct node{int x,y;}a[2600],b[2600];
      bool cmp(node n1,node n2){return n1.x!=n2.x?n1.x>n2.x:n1.y>n2.y;}
      int main()
      {
          int n,m;scanf("%d%d",&n,&m);
          for(int i=1;i<=n;i++)scanf("%d%d",&a[i].x,&a[i].y);
          for(int i=1;i<=m;i++)scanf("%d%d",&b[i].x,&b[i].y);
          sort(a+1,a+n+1,cmp);
          sort(b+1,b+m+1,cmp);
          int ans=0;
          for(int i=1;i<=n;i++)
          for(int j=1;j<=m;j++)
          {
              if(b[j].y>0&&b[j].x>=a[i].x&&b[j].x<=a[i].y)
              {
                  ans++;b[j].y--;break;
              }
              if(b[j].x<a[i].x)break;
          }
          printf("%d\n",ans);
          return 0;
      }
      • 1

      信息

      ID
      1135
      时间
      1000ms
      内存
      64MiB
      难度
      6
      标签
      递交数
      240
      已通过
      78
      上传者