Jzoj4784 Map

STM32驱动HC-SR04超声波模块:两种精准测距方案详解 本文详解STM32驱动HC-SR04超声波模块的两种精准测距方案:定时器中断计数法和外部中断边沿检测法。涵盖硬件连接、代码实现与优化技巧,帮助开发者根据精度和复杂度需求选择合适方案,提升超声波测距在嵌入式项目中的稳定性和准确性。 阅读详情

这个题意很简单,就是问你连一条边会增加多少双联通点对

按照一般的方法,先用Tarjan缩点化为一颗树,每次连起来就在树上找路径统计答案

答案的统计方法,设树上节点i(原图的一个双联通块)的大小为v[i]

那么一条路径[x,y]的端点被连接起来,贡献应该是(Σv[i])^2-Σv[i]^2,其中i∈x~y的路径

这样的话可以用倍增或者树剖求lca来解决

码量比较大

#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 200010
#define LL long long
using namespace std;
struct Edge{ int u,v,nt; } G[N<<3];
int c=1,q,h[N],dfn[N],clk=0,Col=0;
int n,m,low[N],col[N],du[N]; bool b[N<<1];
inline void adj(int x,int y){
	G[++c]=(Edge){x,y,h[x]}; h[x]=c;
	G[++c]=(Edge){y,x,h[y]}; h[y]=c;
}
void tarjan(int u,int v){
	clk++; low[v]=dfn[v]=clk;
	for(int w,i=h[v];i;i=G[i].nt)
		if((i&~1)!=(u&~1)){
			if(!dfn[w=G[i].v]){
				tarjan(i,w);
				if(low[w]==dfn[w] || low[w]>dfn[v]){ b[i]=1; b[i^1]=1; }
				else low[v]=min(low[v],low[w]);
			} else low[v]=min(low[v],dfn[w]);
		}
}
void dfs(int x,int u,int Cl){
	col[x]=Cl; du[Cl]++;
	for(int v,i=h[x];i;i=G[i].nt)
		if((v=G[i].v)!=u&&!b[i]&&!col[v]) dfs(v,x,Cl);
}
struct Tree{
	Edge G[N<<1]; int h[N],d[N],f[18][N],cnt; LL s1[N],s2[N];
	//Tree(){ cnt=0; }
	inline void adj(int x,int y){ 
		G[++cnt]=(Edge){x,y,h[x]}; h[x]=cnt; 
		G[++cnt]=(Edge){y,x,h[y]}; h[y]=cnt; 
	}
	void dfs(int x,int p){
		d[x]=d[p]+1; f[0][x]=p;
		s1[x]=s1[p]+du[x]; s2[x]=s2[p]+(LL)du[x]*du[x];
		for(int j=1;j<18;++j)
			f[j][x]=f[j-1][f[j-1][x]];
		for(int v,i=h[x];i;i=G[i].nt)
			if((v=G[i].v)!=p) dfs(v,x);
	}
	void build(){ dfs(1,0); }
	void swim(int& x,int d){
		for(int i=0;d;++i,d>>=1) if(d&1) x=f[i][x]; 
	}
	int gLca(int x,int y){
		if(d[x]>d[y]) swap(x,y);
		LL x1=0,x2=0;
		swim(y,d[y]-d[x]);
		if(x==y) return x;
		for(int j=17;;){
			for(;~j&&f[j][x]==f[j][y];--j);
			if(j<0) return f[0][x];
			x=f[j][x]; y=f[j][y];
		}
	}
	LL query(int x,int y){
		int p=gLca(x,y);
		LL x1=s1[x]+s1[y]-2*s1[p]+du[p];
		LL x2=s2[x]+s2[y]-2*s2[p]+(LL)du[p]*du[p]; 
		return x1*x1-x2;
	}
} T;
int main(){	
	scanf("%d%d%d",&n,&m,&q);
	for(int x,y,i=0;i<m;++i){
		scanf("%d%d",&x,&y);
		adj(x,y);
	}
	tarjan(0,1); T.cnt=0;
	for(int i=1;i<=n;++i) 
		if(!col[i]) dfs(i,0,++Col);
	for(int i=2;i<=c;i+=2) 
		if(col[G[i].u]!=col[G[i].v]) T.adj(col[G[i].u],col[G[i].v]);
	T.build(); LL SS=0;
	for(int x,y;q--;SS+=T.query(col[x],col[y])) scanf("%d%d",&x,&y);
	for(printf("%lld\n",SS);;) return 0;
}

SAP-ABAP:SAP客户端管理核心事务码SCC4深度解析 SAP客户端管理核心事务码SCC4深度解析 阅读详情

相关推荐

frp 内网渗透案例:端口转发 + 二级代理(深入理解 frp 在内网渗透中的技巧)

本文使用 vulnstack7 靶场作为测试环境,解释 frp 内网渗透特殊使用姿势,通过此案例来提高内网渗透能力。接下来的演示环境只做了以下修改。攻击者 vps 的 ip 修改为:192.168.72.162。DMZ 区域的 ubuntu 的 ip1 修改为:192.168.72.129。先引入问题,当我们控制了 DMZ 的 ubuntu 并且拿到第二层网络的 ubuntu 的 rce 后,会出现以下两个问题。如何搭建隧道让 ubuntu 反弹 shell 给攻击者 vps?

anddddoooo的博客 1762

【JZOJ4784】Map

【JZOJ4784】题解

sadnohappy 408

SAP-HR 模块 PPOSE 的详细信息标签页增强

步骤1:T-CODE : SE11 创建一个名为 HRI9106 的结构 命名:HRI + 91 + 两位数字。人事管理 - 组织管理 - 集成新信息类型 - 将信息类型添加为明细范围中的标签页。步骤6:SE51 查看 7000屏幕,修改屏幕属性 让其更美观。步骤3:T-CODE : SM30维护 T777I 表。步骤5:PPCI 新建 7000屏幕用于显示。标签页 IT 开头 + 信息类型 9106。步骤2:T-CODE : PPCI。步骤4:T-CODE : SPRO。

常回来看看呀!! 1627

NOIP 提高组【JZOJ4784】Map

DescriptionData ConstraintSolution考虑到一个强连通分量内任意两个点一定存在2条不相交的路径,而不在一个强连通分量的两个点只会有一条路径,所以我们先用tarjan缩一下点,并构出一张新图,定义每个点的size为这个点所包含的点数。这样新图就变成一棵树了。然后我们接着想,假设a和b在不同强连通分量内,连接a和b点所造成的新的点对有哪些。显然,连接a和b会使a到b的路径上

dance in th dark的博客 478

手把手教你用内核远程call实现64位进程注入(附完整ShellCode示例)

本文深入探讨了在Windows 64位环境下,通过内核态直接操作线程TrapFrame结构实现进程注入的高级技术。文章提供了从驱动框架设计、用户态-内核态通信,到定位修改TrapFrame、编写Shellcode及执行环境恢复的完整实战指南,并附有详细的代码示例,为安全研究人员和开发者提供了绕过用户态检测、实现底层远程代码执行的新思路。

weixin_28396629的博客 342

元数据管理:DataHub和OpenMetadata对比分析

DataHub和OpenMetadata都试图解决数据编目,搜索,发现,治理和质量方面的相同问题。这两种工具都是出于为需要支持大量数据源、团队和用例的大型组织解决这些问题而诞生的。尽管这些工具在发布历史和成熟度方面略有不同,但它们的功能存在显着重叠。

weixin_38030820的博客 6632

【JZOJ 4784】 Map

Description Analysis又是一道裸题,唉 双连通分量缩点之后在树上维护一些东西做LCA,怎么看都是练码力啊。 我好6啊3周连续3道连通分量类的题全部自信不对拍全部比赛时一次AC,23333 这说明自己的码力有所提升了,是好事 但是不对拍是不对的,还是要求稳,万一正式比赛翻车了就后悔莫及了。Code#include<cstdio> #include<cmath> #inclu

LYD729 440

libcrypto.so.10(OPENSSL_1.0.2)(64bit) is needed by erlang-22.0.7-1.el7.x86_64

今天安装Rabbitmq的 erlang-22.0.7-1.el7.x86_64.rpmrpm包时遇到了这个坑,害找到说是不容易;错误信息在下面; [root@iz2zef7u84js1qeeq00ewwz RabbitMQ]# rpm -ivh erlang-22.0.7-1.el7.x86_64.rpm warning: erlang-22.0.7-1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY error:

qq_45782349的博客 5782

【JZOJ5626】Map

【JZOJ5626】题解

sadnohappy 261

c++界面开发入门

c++界面开发 DialogBox MessageBox

jiaodou2的博客 6514

Jetson AGX Orin 部署 JetPack:从依赖缺失到系统升级的完整排障指南

本文详细介绍了在Jetson AGX Orin开发板上部署JetPack SDK的完整排障指南,包括解决依赖缺失、系统升级和常见错误处理。通过确认硬件版本、配置正确的软件源、执行系统升级和安装核心组件等步骤,帮助开发者顺利完成JetPack的安装与配置,确保AI开发环境的稳定运行。

weixin_29172963的博客 159

【JZOJ 4784】Map

Description upd:保证原图连通。 “不相交路径”的定义为不存在相同的边。可以存在相同的点。重边视为不同的边。 Solution 这个肯定是先tarjan缩点, 缩完点以后出来的肯定是一棵树, 推一下公式,做一个前缀和,LCA一下即可复杂度:O(nlog(n))O(n\log(n))

566

全局注意机制 GAM | Global Attention Mechanism: Retain Information to Enhance Channel-Spatial Interactions

全局注意机制 GAM

Coding... 2573

【jzoj4784】【Map】【强连通分量】

题目大意给出一个图,一些询问加入一条边后增加多少对双连通点对(u,v)(v,u)算两对。解题思路tarjan后建树,答案即为(u,v)路径上size和的平方减去平方和,倍增即可。code#include<set> #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #define LF double #defi

inklutcuah’s blog 458

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【JZOJ4784】【NOIP2016提高A组模拟9.15】Map

题目描述输入输出样例输入4 4 2 1 2 2 3 3 2 3 4 1 2 1 4样例输出14数据范围样例解释upd:保证原图连通。 “不相交路径”的定义为不存在相同的边。可以存在相同的点。重边视为不同的边。 对于样例: 原图有2个安全点对为(2,3),(3,2) 询问1答案为4,新增的安全点对为(1,2),(1,3),(2,1)(3,1) 询问2答案为10,新增的安全点对为(

=w= 414

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【NOI2018模拟4.4】Map

DescriptionRin是个特别好动的少女。 一天Rin来到了一个遥远的都市。这个都市有N个建筑,编号从1到N,其中市中心编号为1,这个都市有M条双向通行的街道,每条街道连接着两个不同的建筑,其中某些街道首尾相连连接成了一个环。Rin通过长时间的走访,已经清楚了这个都市的两个特点: 从市中心出发可以到达所有的建筑物。 任意一条街道最多存在与一个简单环中。令Rin心花怒放的是,每个建筑物都会

Jacky35 505

【JZOJ5870】地图

Description 给定N个度数为1或2的点,求所有带标号简单无向图(无重边和自环)的方案数。 Solution 设度数为2的点有nnn个,度数为1的有mmm个。 因为只有1和2,所以图一定是由许多链和大小大于等于3的简单环构成的,于是我们可以先将度数为1的点忽略(它们只能构成链的两端,一定是两两配对的)。 先考虑环,设FiF_iFi​表示用111~iii的点组成若干个环的方案数,考虑转移,枚...

sadnohappy 349

OpenCV实现两种图像抖动算法

前言 对于可用颜色较少的系统,可以以牺牲分辨率为代价,通过颜色值的抖动来增加可用颜色数量。通俗来说,假如一个灰色图像,有256个灰阶,灰度值范围是0-255。现在只能使用两个灰阶0(黑色)和255(白色)去显示这个灰色图像,那怎么办呢?结论就是通过图像的“抖动”来实现。灰色图像中越黑的地方,周围的像素用0密集排布,越白的地方,黑色像素点越稀疏。通过对黑色像素点的稀疏或者密集去体现不同的灰阶(核心思想)。下面就讨论两种图像抖动算法,一个是Ordered,一个是floydSteinberg。 一、源代码

huangkunjoker的博客 2703

Jzoj P4754 矩阵___map+小根堆

题目大意: 分析: 因为权值非负,一个矩阵的权值肯定≥其子矩阵。那么建立一个堆, 开始把所有最小的和谐矩阵加入堆,每次从堆中取出最小的和谐矩阵,同时扩展出最多四个新的和谐矩阵(上下左右多一行或一列),注意判重,重复kkk次即可。 然后注意一下每个矩阵拓展的时候只需要→↓或者←↑ 2个方向即可,4个方向会炸 代码: #include <iostream> #include <c...

生如夏花之绚烂 369

JZOJ 3831. 地图的密度(MAP)

二维前缀和,然鹅暴力也阔以过

Ajwallet 477

[JZOJ4637] 大鱼海棠(By--A_Crazy_Czy)

Description 椿是掌管海棠花的少女,她所在的世界不为人们所知,他们的天空就是人类的海底。生活在那个世界里的他们不是人,也不是鱼,而是其他人,掌管着人间的规律。 按照他们的习俗,在16岁那年,椿变为一条海豚到人间巡礼。在第六天,她被大海中的一张网困住,一个人类男孩因为救她而落入深海死去。为了报恩,她回去后私自一人去了如升楼找到灵婆(死去的好人的灵魂化为一条小鱼安放在那里)。她以自己

Never give in. 908

一些基础算法的模板(持续更新)

更新中 //Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft //To be continued... //Suffix Automation char str[N]; int s[N][26],mx[N],f[N],sz[N]; int last=1,cnt=1,n,v[N],r[N],ans=0; inlin

扩展の灰(Extended Ash/Cooevjnz) 3865

SPFA的两个优化

最近看到知乎上面有人讨论怎么卡spfa并给出了这道题作为实战地点 于是我就搞了两个优化把出台人精心构造的数据过了 优化1: 这个优化不是我想出来的,如果没错应该是Menci的做法 本来这个优化已经可以过掉原来的五个数据的,让后fstqwq(出题人)搞了一个新数据把这个优化卡T了 其实就是每次入队,如果队头比队尾大那么就交换(感觉很像SLF但是比SLF强) 让后为了Ac我就加了第二...

扩展の灰(Extended Ash/Cooevjnz) 2416

LOJ 6495~6497「雅礼集训 2018 Day1」

. 真是看懂std就秒的三道题,但是看懂就很难啊 (感谢superguymj和memset0两个大佬的代码) 稍微说一下题解 -------------------------------------------------------- 「雅礼集训 2018 Day1」树 这道题的正解被superguymj大佬吊打了,原来O(n⋅2n)O(n·2^n)O(n⋅2n)变成了O(n4)O(n^4)...

扩展の灰(Extended Ash/Cooevjnz) 1562
上一篇: OI一些奇怪的优化手段和常用技巧
下一篇: Jzoj4787 数格子
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值