第一次BC。。。排名好靠后,我还是太弱了orz
BC题目质量还不错,以后有空来做做。。。
居然忘了不能用bits/stdc++.h(雾)
T1好水。。不过手速还是太慢。。。
T2把每个a[i],b[i]看成一条边。。。有环的那部分LCS为点数-1,一个点的特判即可(LCS居然没用到DP)
然后谜之RE。。。特地去自己生成数据。。
然而加了初始化就过了,这TM是为什么~~~~~
被迷之RE浪了好多时间。。于是T3T4没做。。
T1:
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<queue> 6 #define inc(i,l,r) for(i=l;i<=r;i++) 7 #define dec(i,l,r) for(i=l;i>=r;i--) 8 #define inf 1e9 9 #define mem(a) memset(a,0,sizeof(a)) 10 #define ll long long 11 #define succ(x) (1<<x) 12 #define NM 1000 13 using namespace std; 14 int read(){ 15 int x=0,f=1;char ch=getchar(); 16 while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();} 17 while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); 18 return x*f; 19 } 20 int T,n,m,s,a[NM],b[NM],i; 21 int main(){ 22 T=read(); 23 while(T--){ 24 s=0; 25 n=read();m=read(); 26 inc(i,1,n)a[i]=read(); 27 inc(i,1,n)b[i]=read(); 28 sort(a+1,a+1+n); 29 sort(b+1,b+1+n); 30 inc(i,1,m) 31 s+=a[i]-b[n-i+1]; 32 if(s>0)printf("YES\n");else printf("NO\n"); 33 } 34 return 0; 35 }
T2:
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<queue> 6 #define inc(i,l,r) for(i=l;i<=r;i++) 7 #define dec(i,l,r) for(i=l;i>=r;i--) 8 #define inf 1e9 9 #define mem(a) memset(a,0,sizeof(a)) 10 #define ll long long 11 #define succ(x) (1<<x) 12 #define NM 100000+5 13 using namespace std; 14 int read(){ 15 int x=0,f=1;char ch=getchar(); 16 while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();} 17 while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); 18 return x*f; 19 } 20 int a[NM],b[NM],f[NM],n,T,i,s; 21 int find(int x){ 22 return f[x]==x?x:f[x]=find(f[x]); 23 } 24 int main(){ 25 // freopen("test.in","r",stdin); 26 // freopen("test.out","w",stdout); 27 T=read(); 28 while(T--){ 29 s=0;mem(a);mem(b);mem(f); 30 n=read(); 31 inc(i,1,n)a[i]=read(); 32 inc(i,1,n)b[i]=read(); 33 inc(i,1,n)f[i]=i; 34 inc(i,1,n){ 35 int x=find(a[i]),y=find(b[i]); 36 if(x==y)continue; 37 f[x]=y; 38 } 39 inc(i,1,n) 40 if(find(a[i])==a[i])s++; 41 inc(i,1,n) 42 if(a[i]==b[i])s--; 43 printf("%d\n",n-s); 44 } 45 return 0; 46 }