昨晚终于上紫啦!!虽然只是运气好冲的…写题解攒攒人品…
A. Cancel the Trains
因为在横轴 x x x位置往上走的车只可能和竖轴 x x x位置往右走的车冲突
所以横轴的 x x x位置和竖轴的 x x x位置不能共存,留一个大的就好了。
(ps:如果变一下横轴的x位置可以和多个竖轴位置冲突,就要用二分图匹配了)
#include <bits/stdc++.h>
using namespace std;
const int maxn=3e5+10;
int n,m,a[maxn],b[maxn];
signed main()
{
int t; cin >> t;
while( t-- )
{
cin >> n >> m;
for(int i=1;i<=n;i++)
{ int x; cin >> x; a[x]++; }
for(int i=1;i<=m;i++)
{ int x; cin >> x; b[x]++; }
int ans = 0;
for(int i=1;i<=100;i++)
{
if( a[i]&&b[i] ) ans += min( a[i],b[i] );
a[i]=b[i]=0;
}
cout << ans << endl;
}
}
然后
B
,
C
,
D
B,C,D
B,C,D写的都比较详细多,所以单独开了篇博客
CF688div2 1453 B. Suffix Operations(思维,构造)
CF688div2 1453 C. Triangles(枚举+贪心)
CF688div2 1453D. Checkpoints(期望递推构造)
E,F不会…害。