#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,问问神犇们这是什么情况?