关于一本通评测机
  • 板块灌水区
  • 楼主zjinze
  • 当前回复19
  • 已保存回复19
  • 发布时间2023/10/12 14:37
  • 上次更新2023/11/2 14:19:17
查看原帖
关于一本通评测机
868864
zjinze楼主2023/10/12 14:37

为什么我一本通上面 992ms992ms 也会被卡,关键是时限 1000ms1000ms 。 洛谷上的题目,和一本通上的题目一模一样,除了数据范围从 10001000 →\rightarrow 1000010000 。 代码见下

#include <iostream>
#include <vector>
#include <cstring>
#include <bitset>
using namespace std;
#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")
inline long long read(){
	char ch=getchar();
	long long f=1,x=0;
	while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
	while(isdigit(ch))x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
	return x*f;
}
inline void _write(long long x){
	if(x>9)_write(x/10);
	putchar((x%10)+'0');
}
inline void write(long long x,short f=0){
	if(x<0)putchar('-'),x=-x;
	_write(x);
	if(f!=0)putchar(char(f));
}
const int INF=1e6+5;
class Node{
	public:
		int first,second;
};
int front,tail,op,n,m,a,b,c,cnt[10007],dis[10007],que[50000007],sum=0;
vector<Node>ve[10007];
string s="0";
bitset<10007>vis(s);
inline bool spfa(){
	front=1;
	tail=0;
	for(register int i=1;i<=n;++i)
		dis[i]=INF;
	vis[0]=1;
	que[++tail]=0;
	while(front<=tail){
		int u=que[front];
		front++;
		vis[u]=false;
		for(register int j=0;j<ve[u].size();++j){
			int to=ve[u][j].first;
			if(dis[to]>dis[u]+ve[u][j].second){
				dis[to]=dis[u]+ve[u][j].second;
				cnt[to]=cnt[u]+1;
				if(!vis[to]){
					vis[to]=1;
					que[++tail]=to;
					if(cnt[to]>n+1){
						return false;
					}
				}
			}
		}
	}
	return true;
}
int main(){
    std::ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
	n=read(),m=read();
	for(register int i=1;i<=m;++i){
		op=read(),a=read(),b=read();
		if(op==1){
			c=read();
			ve[a].push_back(Node{b,-c});
		}
		else if(op==2){
			c=read();
			ve[b].push_back(Node{a,c});
		}
		else{
			ve[a].push_back(Node{b,0});
			ve[b].push_back(Node{a,0});
		}
	}
	for(register int i=1;i<=n;++i)ve[0].push_back(Node{i,0});
	if(!spfa()){
		puts("No");
	}
	else{
		puts("Yes");
	}
	return 0;
}
2023/10/12 14:37
加载中...