求助MLE#5~#10
查看原帖
求助MLE#5~#10
1031733
xigou1834楼主2023/10/4 15:36
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, m, q;
const int rev = 1 << 30;
vector<vector<int>>dp;
signed main()
{
    cin >> n >> m >> q;
    dp.resize(n + 1, vector<int>(n + 1));
    for(int i = 1;i <= n;i ++)
    {
    	for(int j = 1;j <= n;j ++)
    	{
    		if(i != j) dp[i][j] = rev;
    		else dp[i][j] = 0;
		}
	}
    for(int i = 1;i <= m;i ++)
    {
        int x, y, z;
        cin >> x >> y >> z;
        dp[x][y] = z;
        dp[y][x] = z;
    }
    for(int k = 1;k <= n;k ++)
    {
    	for(int i = 1;i <= n;i ++)
	    {
	    	for(int j = 1;j <= n;j ++)
	    	{
	    		if(dp[i][k]==rev||dp[k][j]==rev)continue;
	    		dp[i][j] = min(dp[i][j], dp[i][k] ^ dp[k][j]);
			}
		}
	}
    while (q --)
    {
    	int x, y;
    	cin >> x >> y;
    	cout << dp[x][y] << endl;
	}
    return 0;
}
2023/10/4 15:36
加载中...