传送门

题目编号: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 }
View Code

相关文章: