代码源每日一题div1 区间和

Daimayuan Online Judge

思路:构造图+bfs
告诉我们L i L_iLiR i R_iRi连续元素的区间和,可以转换成L i − 1 L_i-1Li1R i R_iRi两点之间有条通路,那么问题转化成是否能找到一条通路从0 00走到n nnb f s bfsbfs一遍即可

#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
typedef long long ll;
typedef pair<int,int> PII;
const int N=1e6+10,mod=1e9+7;
int n,q,l,r;
vector<int>e[N];
bool vis[N];
int main(){
    cin>>n>>q;
    while(q--){
        cin>>l>>r;
        e[l-1].push_back(r);
    }
    vis[0]=1;
    queue<int>q;
    q.push(0);
    while(!q.empty()){
        int x=q.front();
        q.pop();
        for(int i=0;i<e[x].size();i++){
            int y=e[x][i];
            if(vis[y]) continue;
            vis[y]=1;
            q.push(y);
        }
    }
    if(vis[n]) {
        cout<<"Yes"<<endl;
    }
    else cout<<"No"<<endl;
    return 0;
}


版权声明:本文为qq_53287227原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。