这是什么报错信息
  • 板块灌水区
  • 楼主Kano_zyc
  • 当前回复11
  • 已保存回复12
  • 发布时间2023/11/4 10:43
  • 上次更新2023/11/4 14:55:20
查看原帖
这是什么报错信息
1076440
Kano_zyc楼主2023/11/4 10:43

rt,C:\Users\admin\Documents\未命名14.cpp In function 'int main()': 44 45 C:\Users\admin\Documents\未命名14.cpp [Warning] integer overflow in expression [-Woverflow] 这是代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1e5*5;
const long long INF=2147483647;
int n,m,s;
int g[N][N];
int dis[N];
bool vis[N];
void Dijkstra(int s)
{
    memset(dis,INF,sizeof(dis));
    memset(vis,false,sizeof(vis));
    dis[s]=0;
    priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > > q;
    q.push(make_pair(0,s));
    while(!q.empty())
    {
        int u=q.top().second;
        q.pop();
        if(vis[u]) continue;
        vis[u]=true;
        for(int v=1;v<=n;v++)
        {
            if(g[u][v]>0&&dis[v]>dis[u]+g[u][v])
            {
                dis[v]=dis[u]+g[u][v];
                q.push(make_pair(dis[v],v));
            }
        }
    }
}
int main()
{
    scanf("%d%d%d",&n,&m,&s);
    for(int i=1;i<=m;i++)
    {
        int u,v,w;
        scanf("%d%d%d",&u,&v,&w);
        g[u][v]=w;
    }
    Dijkstra(s);
    for(int i=1;i<=n;i++)
    {
        if(dis[i]==INF) printf("%d ",(1<<31)-1);
        else printf("%d ",dis[i]);
    }
    return 0;
}
2023/11/4 10:43
加载中...