我很迷惑(最后一个点)
查看原帖
我很迷惑(最后一个点)
799411
aolhg楼主2023/7/25 14:07
#pragma GCC optimize(3)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize(2)
#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
const int N=1e6+10;
#define int long long
int n,m,head[N],w[N],to[N],ne[N],id,vis[N],dis[N],cnt[N];
inline void add(int x,int y,int z){
	to[++id]=y,w[id]=z,ne[id]=head[x],head[x]=id;
}
inline void write(int x)
{
    if(x<0)
        putchar('-'),x=-x;
    if(x>9)
        write(x/10);
    putchar(x%10+'0');
    return;
}
inline int read()
{
	int x=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){
		if (ch=='-') f=-1;
		ch=getchar();
	}
	while (ch>='0'&&ch<='9'){
		x=x*10+ch-48;
		ch=getchar();
	}
	return x*f;
}

inline int spfa(){
	memset(dis,0x3f,sizeof(dis));
	deque<int> q;
	q.push_back(0);
	dis[0]=0;
	vis[0]=1;
	while(!q.empty()){
		int t=q.front();
		q.pop_front();
		vis[t]=0;
		for(int i=head[t];i;i=ne[i]){
			int v=to[i];
			if(dis[v]>dis[t]+w[i]){
				dis[v]=dis[t]+w[i];
				if(!vis[v])
				{
					int num;
					num++;
					cnt[v]++;
					if(cnt[v]>=n||num > 10000000 ){
						return -1;
						exit(0);
					}
					vis[v]=1;
					if(q.size()&&dis[v]>dis[q.front()]){
						q.push_back(v);
					}else{
						q.push_front(v);
					}
				}
			}
		}
	}
	return dis[n];
}
signed main(){
	ios::sync_with_stdio(false);
    cin.tie(nullptr);
	n=read(),m=read();
	for(int i=1,x,y;i<=m;i++){
		x=read(),y=read();
		add(x-1,y,1),add(y,x-1,-1);
	}
	for(int i=1;i<=n;i++) add(i,i-1,0),add(i-1,i,1);
	write(spfa());
    return 0;
}

我这代码,提交N次后最后一点总是TLE,但当我直接在提交后按F5键(刷新)后,竟然A了,我又试了试一般提交(没按过刷新或F5),还是最后一个点TLE,问问神犇们这是什么情况?

2023/7/25 14:07
加载中...