数据
查看原帖
数据
349824
WsW_花逝爆零人楼主2023/10/29 22:14

跑了个乱七八糟的 SPFA,有 7070。
答案 −k-k,另外 2525。
−1-1,另外 55。

void solve2(){
	
	for(int i=1;i<=n;i++)ans[i]=1e9;
	
	ans[1]=k;
	
	for(int i=0;i<v[1].size();i++){
		ans[v[1][i].to]=1+max(k,(v[1][i].lmt+k-1)/k*k);
		q.push(v[1][i].to);
	}
	
	while(!q.empty()){
		int x=q.front();
		q.pop();
		vis[x]=0;
		for(int i=0;i<v[x].size();i++){
			int to=v[x][i].to,lmt=v[x][i].lmt;
			int nans;
			if(lmt<=ans[x]){
				nans=ans[x];
			}
			else{
				nans=lmt+(lmt-ans[x])%2;
			}
			++nans;
			if(ans[to]>nans){
				ans[to]=nans;
				if(!vis[to]){
					q.push(to);
					vis[to]=1;
				}
			}
		}
	}
	int nans=(ans[n]+k-1)/k*k;
	printf("%d",nans);
}
2023/10/29 22:14
加载中...