P5663 [CSP-J2019] 加工零件

>>>发散式的拓展 是否存在一条 距离rt==1 的L长的路线

》》》性质-》 i存在 L长路线 -》i存在l+-=2 路线-》奇偶性+最短路

 

#include <bits/stdc++.h>
using namespace std;

const int MAXN=1005;
int vex[MAXN],k,n,m,q;
struct edge {
    int u,v,next;
}e[MAXN*2];

int vis[MAXN][MAXN];

void add(int u,int v){
    k++;
    e[k].u=u;
    e[k].v=v;
    e[k].next=vex[u];
    vex[u]=k;
}

void dfs(int u,int s){
    if(s==-1||vis[u][s]) return;
    vis[u][s]=1;
    for(int i=vex[u];i;i=e[i].next){
        int v=e[i].v;
        dfs(v,s-1);
    }
    return;
}

int main(){
    cin>>n>>m>>q;
    while(m--){
        int u,v;
        cin>>u>>v;
        add(u,v);
        add(v,u);
    }
    while(q--){
        int u,L;
        memset(vis,0,sizeof(vis));
        cin>>u>>L;
        dfs(u,L);
        if(vis[1][0]) cout<<"Yes"<<endl;
        else cout<<"No"<<endl;
    }
    return 0;
}
暴力

 

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
#include<bits/stdc++.h>
#define ll long long
#define ddd printf("-----------------------\n");
using namespace std;
const int maxn=1e5+10 ;

struct node{
    int a,l;
};
queue<node> q;
vector<int> g[maxn<<1];
int can[10][maxn],dis[10][maxn];
int n,m,qq;

void bfs()
{
    memset(dis,0x3f3f3f3f,sizeof(dis));
    q.push((node){1,0}); can[0][1]=1,dis[0][1]=0;
    while(!q.empty())
    {
        node u=q.front();q.pop();
        int _a=u.a,_l=u.l;
        for(int i=0;i<g[_a].size();i++)
        {
            int v=g[_a][i];
            if(can[(_l+1)%2][v]==0){
                can[(_l+1)%2][v]=1;
                dis[(_l+1)%2][v]=_l+1;
                q.push((node){v,_l+1});
            }
        }
    }
}
int main()
{
    ios::sync_with_stdio(false);
    cin>>n>>m>>qq;
    for(int i=1;i<=m;i++){
        int u,v;cin>>u>>v;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    bfs();
    for(int i=1;i<=qq;i++)
    {
        int a,l;cin>>a>>l;
        if(can[l%2][a]==1&&l>=dis[l%2][a]){
            cout<<"Yes\n";
            continue;
        }
        else{
            cout<<"No\n";
            continue;
        }
    }
    return 0;
}

 

posted @ 2023-09-03 12:23  JMXZ  阅读(101)  评论(0)    收藏  举报