征集数据卡掉CSP-J T4暴力
  • 板块学术版
  • 楼主keatsli
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/25 18:17
  • 上次更新2023/11/2 11:26:55
查看原帖
征集数据卡掉CSP-J T4暴力
377782
keatsli楼主2023/10/25 18:17
#include<bits/stdc++.h>
using namespace std;
#define ll long long
vector<pair<int,int>>g[10010];
int n,m,k,ans;
bitset<10010>t,t1;
inline int read(){
	register int f=0,x=0,t=getchar();
	while(t<'0'||t>'9')f=t=='-',t=getchar();
	while(t>='0'&&t<='9')x=x*10+(t^48),t=getchar();
	return f?-x:x;
}
signed main(){
	freopen("bus.in","r",stdin);
	freopen("bus.out","w",stdout);
	n=read(),m=read(),k=read();
	int mn=2e9;
	while(m--){
		int u=read(),v=read(),a=read();
		g[u].push_back({a,v});
		if(u==1)mn=min(mn,a);
	}
	if(mn==2e9)return cout<<"-1\n",0;
	ans=((mn+k-1)/k)*k;
	while(1){
		t[1]=1;
		for(int i(0);i<k;++i){
			t1=0;
			int nw=t._Find_first();
			while(nw<=n){
				for(auto i:g[nw])if(i.first<=ans)t1[i.second]=1;
				nw=t._Find_next(nw);
			}
			t=t1,++ans;
			if(ans%100==0&&clock()>CLOCKS_PER_SEC*0.98){ans=-1;break;}//TLE
		}
		if(ans==-1||t[n])break;
		
	}
	cout<<ans<<'\n';
	return 0;
}

征集数据卡掉暴力,悬3关。

2023/10/25 18:17
加载中...