乱搞求hack
  • 板块CF786B Legacy
  • 楼主keatsli
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/3 17:56
  • 上次更新2024/9/3 21:57:09
查看原帖
乱搞求hack
377782
keatsli楼主2024/9/3 17:56
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n,q,s;
bool flg=0;
#define X first
#define Y second
struct segtree{
	struct node{ll tg,mx,mn;}tr[100010<<2];
	#define ls p<<1
	#define rs p<<1|1
	#define mid (l+r>>1)
	segtree(){memset(tr,0x3f,sizeof(tr));}
	void pushup(int p){tr[p].mx=max(tr[ls].mx,tr[rs].mx);tr[p].mn=min(tr[ls].mn,tr[rs].mn);}
	void pushdown(int p){
		if(tr[p].tg!=0x3f3f3f3f3f3f3f3fll){
			tr[ls].mx=tr[ls].mn=tr[ls].tg=tr[p].tg;
			tr[rs].mx=tr[rs].mn=tr[rs].tg=tr[p].tg;
			tr[p].tg=0x3f3f3f3f3f3f3f3fll;
		}
	}
	void modi(int p,int l,int r,int L,int R,ll v){
		if(tr[p].mx<=v)return;
		if(L<=l&&R>=r){
			if(tr[p].mn>=v){tr[p].tg=v,tr[p].mx=tr[p].mn=v;flg=1;return;}
		}
		pushdown(p);
		if(L<=mid)modi(ls,l,mid,L,R,v);
		if(R>mid)modi(rs,mid+1,r,L,R,v);
		pushup(p);
	}
	ll qry(int p,int l,int r,int L,int R){
		if(L<=l&&R>=r)return tr[p].mn;
		ll ans=5e18;
		pushdown(p);
		if(L<=mid)ans=qry(ls,l,mid,L,R);
		if(R>mid)ans=min(ans,qry(rs,mid+1,r,L,R));
		pushup(p);
		return ans;
	}
}t;
vector<pair<int,pair<int,int>>>g[100010],g1[100010];
void write(ll v){cout<<(v>1e18?-1:v);}
int main(){
  ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>q>>s;
	while(q--){
		int op,l,r,u,v,w;cin>>op;
		if(op==1)cin>>u>>v>>w,g[u].push_back({w,{v,v}});
		else if(op==2)cin>>u>>l>>r>>w,g[u].push_back({w,{l,r}});
		else if(op==3)cin>>v>>l>>r>>w,g1[v].push_back({w,{l,r}});
	}
	for(int i=1;i<=n;++i)sort(g[i].begin(),g[i].end());
	t.modi(1,1,n,s,s,0);
	for(int _=1;_<=n;++_){
		flg=0;
		for(int i=1;i<=n;++i){
			const ll v=t.qry(1,1,n,i,i);
			for(auto k:g1[i])t.modi(1,1,n,i,i,t.qry(1,1,n,k.Y.X,k.Y.Y)+k.X);
			for(auto k:g[i])t.modi(1,1,n,k.Y.X,k.Y.Y,v+k.X);
		}
		if(!flg)break;
	}
	write(t.qry(1,1,n,1,1));
	for(int i=2;i<=n;++i)cout<<' ',write(t.qry(1,1,n,i,i));
	// cerr<<clock()*1000/CLOCKS_PER_SEC<<endl;
	return 0;
}

通过了CF数据。

2024/9/3 17:56
加载中...