(╥╯^╰╥) 蒟蒻求助
查看原帖
(╥╯^╰╥) 蒟蒻求助
468173
wyh13578944579楼主2021/10/25 19:56
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
int a1[100000],b1[100000],a2[100000],b2[100000];
int out1[100000],out2[100000];
int m,m1,m2,ans1=0,ans2=0,ans=0;
void find1(int x,int y,int k1){
   for(int i=1;i<=k1;i++)
   {
	  if(out1[i]<=x)
	  {
		 out1[i]=y;
		 ans1=ans1+1;
		 return;
	  }
   }
}
void find2(int x,int y,int k2){
   for(int i=1;i<=k2;i++)
   {
	  if(out2[i]<=x)
	  {
		 out2[i]=y;
		 ans2=ans2+1;
		 return;
	  }
   }
}
void zz1(int x,int y,int z){
   for(int i=0;i<z;i++){
      if(x<a1[i]){
         a1[z]=a1[i];
         b1[z]=b1[i];
         a1[i]=x;
         b1[i]=y;
         zz1(a1[z],b1[z],z);
      }
   }
}
void zz2(int x,int y,int z){
   for(int i=0;i<z;i++){
      if(x<a2[i]){
         a2[z]=a2[i];
         b2[z]=b2[i];
         a2[i]=x;
         b2[i]=y;
         zz2(a2[z],b2[z],z);
      }
   }
}
int main(){
   scanf("%d%d%d",&m,&m1,&m2);
   for(int i=0;i<m1;i++)
   {
      scanf("%d%d",&a1[i],&b1[i]);
         zz1(a1[i],b1[i],i);
   }
   for(int i=0;i<m2;i++)
   {
      scanf("%d%d",&a2[i],&b2[i]);
         zz2(a2[i],b2[i],i);
   }
   int k1=m,k2=0;
   for(int i=0;i<=m;i++)
   {
      memset(out1,0,sizeof(out1));
      memset(out2,0,sizeof(out2));
      for(int j=0;j<m1;j++)
      {
         find1(a1[j],b1[j],k1);
      }
      for(int j=0;j<m2;j++)
      {
		 find2(a2[j],b2[j],k2);
	  }
	  k1=k1-1;
	  k2=k2+1;
	  ans=max(ans,ans1+ans2);
	  ans1=0;
	  ans2=0;
   }
   printf("%d",ans);
   return 0;
}

不知道为什么错了

2021/10/25 19:56
加载中...