求救,为什么sizeof的括号会影响答案
查看原帖
求救,为什么sizeof的括号会影响答案
390150
平等与晚钟楼主2024/10/6 10:23

不带括号的sizeof,56分

带括号的sizeof AC

#include<bits/stdc++.h>
#define int long long
using namespace std;
typedef pair<int, int> P;
const int N=11451419;
int n,m,s;
int h[N],w[N],e[N],ne[N],idx;
int dist[N];
bool st[N];
priority_queue<P,vector<P>,greater<P>>q;
void add(int a,int b,int z)
{
    e[++idx]=b,ne[idx]=h[a],w[idx]=z,h[a]=idx;
}
void dis(int s)
{
	memset(dist,0x3f,sizeof dist);//memset(dist,0x3f,sizeof(dist))是正确的;
	dist[s]=0;
	q.push({0,s});
	while(q.size())
	{
		auto t=q.top();
		q.pop();
		int ver=t.second,distance=t.first;
		if(st[ver])continue;
		st[ver]=1;
		for(int i=h[ver];i;i=ne[i])
		{
			int j=e[i];
			if(dist[j]>distance+w[i])
			{
				dist[j]=distance+w[i];
				q.push({dist[j],j});
			}
		}
	}
}
signed main()
{
	cin>>n>>m>>s;
	while(m--)
	{
		int a,b,c;
		cin>>a>>b>>c;
		add(a,b,c);
	}
	dis(s);
	for(int i=1;i<=n;i++)
	{
		if(dist[i]>11451419)
			cout<<INT_MAX<<" ";
		else
			cout<<dist[i]<<" ";
	}
}
2024/10/6 10:23
加载中...