求助各位大佬QwQ

#include<bits/stdc++.h>
using namespace std;
const int N=4e5+1;
int a[N],b[N],l,r;
int mas[N],vis[N];
inline bool dfs(int x){
    int L=max(a[x],l),R=min(b[x],r);
	for(int v=L;v<=R;++v){
		if(vis[v]){
			continue;
		}
		vis[v]=1;
		if(!mas[v]||dfs(mas[v])){
			mas[v]=x;
			return true;
		}
	}
	return false;
}
int main(){
    int n,q;
    scanf("%d%d",&n,&q);
    for(int i=1;i<=n;++i){
        scanf("%d",&a[i]);
    }
    for(int i=1;i<=n;++i){
        scanf("%d",&b[i]);
    }
    while(q--){
        int ans=0;
        scanf("%d%d",&l,&r);
        memset(vis,0,sizeof(vis)),memset(mas,0,sizeof(mas));
        for(int i=1;i<=n;++i){
            if(dfs(i)){
                ++ans;
            }
        }
        printf("%d\n",ans);
    }
	return 0;
}
打的二分图匹配,不知道哪里错了qwq

全部评论
找到错了。。。哎。。。我太菜了qwq
1 回复 分享
发布于 2019-09-06 22:09
点赞 回复 分享
发布于 2022-11-04 15:20 辽宁

相关推荐

浩浩没烦恼:一二面加起来才一个小时? 我一面就一个小时多了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务