社区讨论

站外题(CE,能过编译就行)

学术版参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mhj006vk
此快照首次捕获于
2025/11/03 18:29
4 个月前
此快照最后确认于
2025/11/03 18:29
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;

int w[1030][15],r,d,s,l,r1,u,v;
struct u{int x,y;}a[100005];
set<int> g[105],k[105];

void tr(u t,int q){
    if(w[t.x][t.y]<9e8)return;
    w[t.x][t.y]=q;
    a[r++]=t;
}
void bfs(u t){
    for(int i:g[t.y])if(t.x&(1<<i))tr({t.x,i},w[t.x][t.y]+1);
    for(int i:k[t.y])if(i!=t.y)tr({t.x^(1<<i),t.y},w[t.x][t.y]+1);
}
int main(){
    cin>>r>>d>>s;
    for(int i=0;i<(1<<r);++i)for(int j=0;j<r;++j)w[i][j]=1e9;
    while(d--){
        cin>>u>>v;
        g[u].insert(v);
        g[v].insert(u);
    }
    while(s--){
        cin>>u>>v;
        k[u].insert(v);
    }
    w[1][0]=0;a[r1++]={1,0};
    while(l<r1)bfs(a[l++]);
    if(w[(1<<r)-1][r-1]<9e8)printf("Mr. Black needs %d steps.",w[(1<<r)-1]);
    else printf("Poor Mr. Black! No sleep tonight!\n");
}
只问CE原因

回复

3 条回复,欢迎继续交流。

正在加载回复...