比赛 2024暑期C班集训3 评测结果 RRRRRRRRRRRRRRRRRRRR
题目名称 不是一道路径查询问题 最终得分 0
用户昵称 AeeE5x 运行时间 0.027 s
代码语言 C++ 内存使用 12.60 MiB
提交时间 2024-07-03 09:03:55
显示代码纯文本
#include<iostream>
#include<queue>
#include<vector>
#include<map>
#define ll long long
using namespace std;
int n,m,q;
ll V;
struct nod{int num;ll val;};
vector<nod> mp[100010];
map<int,ll> mp2[100010]={};
void f(int x){
	queue<nod> que;
	que.push((nod){x,-1});
	while(!que.empty()){
		nod fr=que.front();
		for(int i=0;i<mp[fr.num].size();i++){
			ll vp;
			if(fr.val==-1) vp=mp[fr.num][i].val;
			else vp=fr.val&mp[fr.num][i].val;
			cout<<mp[fr.num][i].num<<" "<<vp<<endl;
			if(mp2[x][mp[fr.num][i].num]>=vp) continue;
			mp2[x][mp[fr.num][i].num]=vp;
			que.push((nod){mp[fr.num][i].num,vp});
		}
		que.pop();
	}
}
int main(){
//    freopen("Cappuccino.in","r",stdin);
//    freopen("Cappuccino.out","w",stdout);
    
    scanf("%d%d%d%lld",&n,&m,&q,&V);
    while(m--){
    	int ui,vi;
		ll wi;
    	scanf("%d%d%lld",&ui,&vi,&wi);
    	mp[ui].push_back((nod){vi,wi});
    	mp[vi].push_back((nod){ui,wi});
	}
	for(int i=1;i<=n;i++) f(i);
	while(q--){
		int a,b;scanf("%d%d",&a,&b);
		printf("%lld\n",mp2[a][b]);
	}
	
    
    return 0;
}