91xrz @ 2023-07-21 09:33:11
后面70%过不了。。
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 10;
long long n, m, cnt,ans;
long long a[N];
long long b[N];
bool is_ture;
bool check(int x)
{
int l=0,r=m+1;
while (l + 1 != r)
{
int mid = (l + r) / 2;
if (b[mid] >= x)
r = mid;
else l = mid;
}
return b[r] == x;//r为第一个大于等于x的数 判断r是否等于x
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
for(int i=1;i<=n;i++)
cin >> a[i];
for(int i=1;i<=m;i++)
cin >> b[i];
sort(b+1,b+1+m);
for (int i = 1; i <= n; i++)
{
if (check(a[i]))
{
if (is_ture)
is_ture = false;
}
else if (is_ture == 0)
{
is_ture = 1;
cnt++;
}
}
cout << cnt;
}
感觉是数据范围的问题?不知道咋解决
by Chlero @ 2023-10-15 11:49:32
把 check 传进来的 x 改成 longlong 试试?
by Chlero @ 2023-10-15 11:50:19
我就是这样 WA 到 30pts 的
by Chlero @ 2023-10-15 11:52:07
就是这个问题 提交记录