题目编号:4090~4099
外来题解1:戳这里
外来题解2:戳这里
B:李继朋
以下题解来源于鲁东大学,表示感谢!
网盘链接:????戳这里
提取码:2nag
A:
AC代码:
1 #include <cstdio> 2 #include <iostream> 3 #include <algorithm> 4 #include <cmath> 5 #include <cstdlib> 6 #include <cstring> 7 #include <map> 8 #include <stack> 9 #include <queue> 10 #include <vector> 11 #include <bitset> 12 #include <set> 13 #include <utility> 14 #include <sstream> 15 #include <iomanip> 16 using namespace std; 17 typedef long long ll; 18 typedef unsigned long long ull; 19 #define inf 0x3f3f3f3f 20 #define rep(i,l,r) for(int i=l;i<=r;i++) 21 #define lep(i,l,r) for(int i=l;i>=r;i--) 22 #define ms(arr) memset(arr,0,sizeof(arr)) 23 //priority_queue<int,vector<int> ,greater<int> >q; 24 const int maxn = (int)1e5 + 5; 25 const ll mod = 1e9+7; 26 vector<int> a0,a1,b0,b1; 27 int a[100100],b[100100]; 28 int main() 29 { 30 #ifndef ONLINE_JUDGE 31 freopen("in.txt", "r", stdin); 32 #endif 33 //freopen("out.txt", "w", stdout); 34 ios::sync_with_stdio(0),cin.tie(0); 35 int t; 36 scanf("%d",&t); 37 while(t--) { 38 a0.clear();a1.clear(); 39 b0.clear();b1.clear(); 40 int n,m; 41 scanf("%d %d",&n,&m); 42 rep(i,1,n) scanf("%d",&a[i]); 43 rep(i,1,m) scanf("%d",&b[i]); 44 int nape; 45 int len1=0,len2=0,len3=0,len4=0; 46 rep(i,1,n) { 47 scanf("%d",&nape); 48 if(nape==0) a0.push_back(a[i]),len1++; 49 if(nape==1) a1.push_back(a[i]),len2++; 50 } 51 rep(i,1,m) { 52 scanf("%d",&nape); 53 if(nape==0) b0.push_back(b[i]),len3++; 54 if(nape==1) b1.push_back(b[i]),len4++; 55 } 56 sort(a0.begin(),a0.end()); 57 sort(a1.begin(),a1.end()); 58 sort(b0.begin(),b0.end()); 59 sort(b1.begin(),b1.end()); 60 int ans=0; 61 for(int i=0,j=0;i<len1&&j<len4;) { 62 if(a0[i]>b1[j]) {ans++;i++;j++;} 63 else i++; 64 } 65 for(int i=0,j=0;i<len2&&j<len3;) { 66 if(b0[j]>a1[i]) {ans++;i++;j++;} 67 else j++; 68 } 69 printf("%d\n",ans); 70 } 71 return 0; 72 }