JT4暴力85分
  • 板块学术版
  • 楼主AirQwQ
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/22 22:05
  • 上次更新2023/11/2 11:46:53
查看原帖
JT4暴力85分
748437
AirQwQ楼主2023/10/22 22:05
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define vint vector<int>
#define pii pair<int,int>
#define que queue<int>
int n,m,k,ans(2e9);
vector<pii> e[20005];
int dij(int s){
	priority_queue<pii,vector<pii>,greater<pii>> q;
	q.push({s,1});
	while(!q.empty()){
		pii u=q.top();
		q.pop();
		if(u.first>=ans) return 2e9;
		if(u.second==n&&u.first%k==0)
			return u.first;
		for(auto v:e[u.second])
			if(u.first+1>=v.second)
				q.push({u.first+1,v.first});
	}
	return 2e9;
}
signed main(){
    int T=clock();
	cin>>n>>m>>k;
	int flag=1;
	for(int i=1,u,v,a;i<=m;i++){
		cin>>u>>v>>a;
		e[u].push_back({v,a});
	}
	for(int i=0;clock()-T<=950000;i+=k)
		ans=min(dij(i),ans);
	cout<<(ans==2e9?-1:ans);
	return 0;
}

思路就是枚举k然后跑迪杰斯特拉,加了个卡时间,和 if(u.first>=ans) return 2e9; 这么个小剪枝,结果 https://www.luogu.com.cn/record/131115822 85分,难蚌。

顺便问问大佬为什么会挂 8~10 啊 QwQ

2023/10/22 22:05
加载中...