首页 > 其他分享 >小 Trick 合集

小 Trick 合集

时间:2024-02-23 17:12:51浏览次数:18  
标签:rt rp idx int mid Trick lp 合集

A:区间 [l1,r1] -> [l2,r2] 连有权边跑 dij 优化建图能不能优化?
Q:能。直接优化建图+普通堆是O(nlog^2n)的,实际上可以隐式建图,线段树+vector即可。可以做到 O(nlogn)

代码超级小清新!!

点击查看代码
array<int,3> v[MAX];
vector<int> e[MAX<<2];
bool vis[MAX];
int mn[MAX<<2],sz[MAX<<2],tag[MAX<<2];
void pushdown(int rt){
	if(sz[ls(rt)]){
		mn[ls(rt)] = min(mn[ls(rt)],tag[rt]);
		tag[ls(rt)] = min(tag[ls(rt)],tag[rt]);
	}
	if(sz[rs(rt)]){
		mn[rs(rt)] = min(mn[rs(rt)],tag[rt]);
		tag[rs(rt)] = min(tag[rs(rt)],tag[rt]);
	}
	tag[rt] = inf;
	return ;
}
void pushup(int rt){
	sz[rt] = sz[ls(rt)]+sz[rs(rt)];
	mn[rt] = min(mn[ls(rt)],mn[rs(rt)]);
	return ;
}
void build(int lp,int rp,int rt){
	if(lp==1)mn[rt]=0;
	else mn[rt] = inf;
	tag[rt] = inf;
	sz[rt] = rp-lp+1;
	if(lp>=rp)return ;
	int mid = (lp+rp)>>1;
	build(lp,mid,ls(rt));
	build(mid+1,rp,rs(rt));
	return ;
}
void add(int lp,int rp,int l,int r,int idx,int rt){
	if(l<=lp&&rp<=r){
		e[rt].pb(idx);
		return ;
	}
	int mid = (lp+rp)>>1;
	if(l<=mid)add(lp,mid,l,r,idx,ls(rt));
	if(r>mid)add(mid+1,rp,l,r,idx,rs(rt));
	return ;
}
void chkmin(int lp,int rp,int l,int r,int val,int rt){
	if(!sz[rt])return ;
	if(l<=lp&&rp<=r){
		mn[rt] = min(mn[rt],val);
		tag[rt] = min(tag[rt],val);
		return ;
	}
	int mid = (lp+rp)>>1;
	pushdown(rt);
	if(l<=mid)chkmin(lp,mid,l,r,val,ls(rt));
	if(r>mid)chkmin(mid+1,rp,l,r,val,rs(rt));
	pushup(rt);
	return ;
}
void upd(int lp,int rp,int rt){
	for(auto idx:e[rt]){
		if(!vis[idx]){
			vis[idx] = 1;
			chkmin(1,n,v[idx][0],v[idx][1],v[idx][2]+val);
		}
	}
	e[rt].clear();
	if(lp>=rp){
		sz[rt] = 0;
		mn[rt] = inf;
		return ;
	}
	pushdown(rt);
	int mid = (lp+rp)>>1;
	if(mn[ls(rt)]==mn[rt])upd(lp,mid,val,ls(rt));
	else upd(mid+1,rp,val,rs(rt));
	pushup(rt);
	return ;
}

标签:rt,rp,idx,int,mid,Trick,lp,合集
From: https://www.cnblogs.com/pp-orange/p/18029973

相关文章

  • 【专题】2023年全球移动应用(非游戏)营销趋势白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35180原文出处:拓端数据部落公众号随着国内政策调整,移动APP业务前景充满不确定性,但这也为出海应用带来了新机遇。2023年,AI和短剧应用的崛起为出海行业注入了信心。随着用户需求增长和技术进步,这两个领域有望在2024年迎来更大发展。阅读原文,获取专......
  • 【专题】中国企业财务数字化转型白皮书报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32389原文出处:拓端数据部落公众号新冠疫情等对商业活动进行了重新塑造,并使金融活动在商业活动中的位置发生了变化。在可持续发展的时代背景下,财务人员需要适应新的工作模式,主动接受新的技术,将关注的重点从传统的财务报告范围拓展到可持续性、包容性......
  • 即时通讯技术文集(第33期):IM开发综合技术合集(Part6) [共12篇]
    为了更好地分类阅读52im.net总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第33 期。[- 1 -] IM开发技术学习:揭秘微信朋友圈这种信息推流背后的系统设计[链接] http://www.52im.net/thread-3675-1-1.html[摘要] 本文将重点讨论的是“关注”功能对应的......
  • C#以及.Net问题合集
    静态成员(静态方法、静态属性等)不属于类的任何个体对象,它们属于类本身。因此,不能通过实例化的对象来调用静态方法。而应该直接通过类名来调用静态成员,如下:```csharpCalculator.Report();```反过来,非静态方法(如`Add`和`Sub`方法)则需要通过实例化的对象来调用。如下:```csharpCal......
  • 【专题】2024中国消费电子和家电行业趋势报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35177原文出处:拓端数据部落公众号中国是全球消费电子和家用电器的重要制造基地和出口国,占据全球市场超过22%的销售份额。在亚太市场销量方面也占据重要地位。作为“世界工厂”,中国拥有庞大的电子制造和出口能力,涵盖智能手机、电脑、电视、消费类电......
  • 数学题目合集
    翻转性质:如果翻转的区间所有数对个数为偶,则整个逆序对个数奇偶性不变;否则改变。证明:首先翻转区间外的逆序对个数不会变化,翻转区间与翻转区间外的逆序对个数也不会变化。假设翻转前翻转区间内有\(cnt\)个逆序对,则翻转后有\(len\times(len-1)/2-cnt\)个逆序对,差为\(len\tim......
  • c++小游戏合集
    1.恶魔轮盘赌恶魔轮盘赌代码#include<windows.h>#include<bits/stdc++.h>usingnamespacestd;intYour=6,Other=6;stringdaojuname[]={"放大镜","手铐","小刀","烟","饮料"};doubleYourmoney;intshi,kong;intq[10],......
  • 【专题】2022数字化转型指数年度报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33471原文出处:拓端数据部落公众号数字化转型指数报告2022合集根据“基础设施-平台-应用”三层指标体系,对全国300余个城市、10余个行业的数字化发展规模进行了评估。该报告提供了覆盖全国范围的季度数字化转型指数,为各行各业推进数字化转型提供了有益......
  • 【专题】2030年中国汽车行业趋势展望报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35173原文出处:拓端数据部落公众号汽车行业正站在发展的关键节点。面对多样的消费群体、创新的商业模式以及颠覆性技术对产业链、价值链和生态圈的深刻变革,行业在追求极致用户体验的同时,还面临着巨大的成本优化压力。这些因素将共同塑造中国汽车行......
  • [Some Tricks] 自动取模类
    consti128o=1;template<i64mod,i64invpow=mod-2>structModular{u64M=(o<<64)/mod;i64query(i64x){u64x_=1ull*x;u64q=1ull*(((i128)(M)*(i128)(x_))>>64);u64r=x_-q*(1ull*mod......