多校赛code

From Buff Octupus, 3 Years ago, written in Plain Text, viewed 268 times.
URL http://axuhongbo.top/paste/view/58698733 Embed
Download Paste or View Raw
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. struct node
  5. {
  6.     int l,r;
  7. } d[110000];
  8.  
  9. bool cmp(node a,node b)
  10. {
  11.     if(a.l!=b.l)return a.l<b.l;
  12.     else return a.r>b.r;
  13. }
  14.  
  15. int main()
  16. {
  17.     int a[110000];
  18.     int b[110000];
  19.     int t,n,m,j,p;
  20.     scanf("%d",&t);
  21.     while(t--)
  22.     {
  23.         scanf("%d%d",&n,&m);
  24.         memset(b,0,sizeof(b));
  25.         for(int i=0; i<m; i++)
  26.         {
  27.             scanf("%d%d",&d[i].l,&d[i].r);
  28.         }
  29.         sort(d,d+m,cmp);
  30.        // d[m].l=n+1;
  31.         j=0;
  32.         p=1;
  33.         for(int i=1; i<=n; i++)
  34.         {
  35.             while(d[j].r<i)
  36.             {
  37.                 p=1;
  38.                 j++;
  39.             }
  40.             if(d[j].l>i||j>=m)
  41.             {
  42.                 a[i]=1;
  43.                 b[1]=i;
  44.             }
  45.             else
  46.             {
  47.                 while(b[p]>=d[j].l&&b[p]<=d[j].r)
  48.                 {
  49.                     p++;
  50.                 }
  51.                // printf("%d**%d\n",p,b[p]);
  52.                 a[i]=p;
  53.                 b[p]=i;
  54.             }
  55.             if(i==n)printf("%d\n",a[i]);
  56.             else printf("%d ",a[i]);
  57.         }
  58.     }
  59.     return 0;
  60. }

Reply to "多校赛code"

Here you can reply to the paste above

captcha