51Nod1679 连通率

DHCP Starvation攻击原理与防御:利用Kali Linux进行网络协议安全测试 动态主机配置协议(DHCP)作为网络自动分配IP地址的核心协议,其工作原理基于客户端-服务器的DORA交互模型。然而,该协议在设计上缺乏对客户端的初始身份验证机制,这构成了潜在的安全漏洞。攻击者利用这一缺陷,通过伪造大量带有随机MAC地址的DHCP Discover报文,快速耗尽DHCP服务器的地址池资源,导致合法客户端无法获取网络配置,从而实现拒绝服务攻击。这种攻击不仅成本低、效果显著,还可能作为中间人攻击的前奏,威胁企业网络接入层的安全。在渗透测试领域,Kali Linux集成了如yersinia等专业 阅读详情

题目看这里

一个简单的计数问题

我们先考虑O(n^2)的做法

对每个点dfs一次,求出d[i]表示i的深度,那么对答案贡献就是Σ2^(n-d[i])

那么我们考虑用数据结构动态维护这个d[i],显然可以用线段树来维护dfs序做到

复杂度O(n lg n) 效率很高rank8


看了下solution突然才发现别人都不是这么做的!


不管了反正跑得过而且跑的快。。就是代码比较丑陋

#pragma GCC opitmize("O3")
#pragma G++ opitmize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define M 1000000007
#define LL long long
#define mid (l+r>>1)
#define N 100010
using namespace std;
const int inv=500000004;
struct edge{ int v,nt; } G[N<<1];
int n,cnt=0,h[N],w[N],t,d[N],l[N],r[N]; LL s[N<<2],c[N<<2],ans=0;
inline void ad(LL& x,LL y){ x=(x+y)%M; }
inline void mul(LL& x,LL y){ x=x*y%M; }
inline LL pow(LL x,LL k,LL s=1){
    for(;k;x=x*x%M,k>>=1) k&1?s=s*x%M:0;
    return s;
}
inline void build(int l,int r,int x){
    if(l==r){ s[x]=pow(2,n-d[w[l]]-1); c[x]=1; return; }
    build(l,mid,x<<1);
    build(mid+1,r,x<<1|1);
    s[x]=(s[x<<1]+s[x<<1|1])%M; c[x]=1;
}
inline void pd(int x){
    if(c[x]>1){
        mul(c[x<<1],c[x]);
        mul(c[x<<1|1],c[x]);
        mul(s[x<<1],c[x]);
        mul(s[x<<1|1],c[x]);
        c[x]=1;
    }
}
inline void update(int l,int r,int x,int L,int R,LL k){
    if(L<=l && r<=R){ mul(s[x],k); mul(c[x],k); return; }
    pd(x);
    if(L<=mid) update(l,mid,x<<1,L,R,k);
    if(mid<R) update(mid+1,r,x<<1|1,L,R,k);
    s[x]=(s[x<<1]+s[x<<1|1])%M;
}
inline LL query(int l,int r,int x,int L,int R){
    if(L<=l && r<=R) return s[x];
    pd(x); LL ans=0;
    if(L<=mid) ad(ans,query(l,mid,x<<1,L,R));
    if(mid<R) ad(ans,query(mid+1,r,x<<1|1,L,R));
    return ans;
}
inline void dfs(int x){
    w[++t]=x; l[x]=t;
    for(int v,i=h[x];i;i=G[i].nt)
        if(!l[v=G[i].v]){ d[v]=d[x]+1; dfs(v); }
    r[x]=t;
}
inline void cal(int x,int p){
    ad(ans,query(1,n,1,1,n));
    for(int v,i=h[x];i;i=G[i].nt)
        if((v=G[i].v)!=p){
            update(1,n,1,l[v],r[v],4);
            update(1,n,1,1,n,inv);
            cal(v,x); 
            update(1,n,1,l[v],r[v],(LL)inv*inv%M);
            update(1,n,1,1,n,2);
        }
}
int main(){
    scanf("%d",&n);
    for(int x,y,i=1;i<n;++i){
        scanf("%d%d",&x,&y);
        G[++cnt]=(edge){y,h[x]}; h[x]=cnt;
        G[++cnt]=(edge){x,h[y]}; h[y]=cnt;
    }
    dfs(1);
    build(1,n,1);
    cal(1,0);
    ad(ans,-n*pow(2,n-1)%M);
    printf("%lld\n",(ans+M)%M*inv%M);
}

dfs序(+树状数组) 例题 苹果树 题目描述 在附中有一棵苹果树,苹果产量特别高,这棵树有n个分叉点,并且它们之间有树枝相连,将这些分叉点编号,并且树根一直都是1,苹果会长在枝条的分叉点上面,且不会有两个苹果结在一起。你想要对它进行统计,但是有些小朋友会摘掉其中的一些苹果,而有的时候,苹果又会长出来。 于是我们定义两种操作: C x 表示编号为x的分叉点的状态被改变(原来有苹果的话,就被摘掉,原来没有的话,就结出一个苹... 阅读详情

相关推荐

D算法仿真通信网实验

这个代码可以完成路由选择中的D算法,实现通信网这门课程的实验要求

红日靶场实战:CS与MSF联动内网渗透从外网到域控全流程解析

内网渗透是网络安全攻防演练的核心环节,其原理在于攻击者突破网络边界后,在内部网络中进行横向移动、权限提升,最终控制关键资产。这项技术的价值在于模拟真实攻击链,检验企业纵深防御体系的有效性。在实战中,渗透测试人员常面临如何在内网隐蔽行动、高效利用工具组合的挑战。Cobalt Strike(CS)以其强大的团队协作与C2控制能力,Metasploit(MSF)则凭借其庞大的漏洞利用库,成为内网渗透的黄金组合。通过会话传递、流量中转等联动技巧,可以实现优势互补,例如利用CS的隐蔽性投递载荷,再借助MSF的丰富模块

dianning8393的博客 375

2025年最新Cesium学习示例:Cesium-Examples

2025年最新Cesium学习示例:Cesium-Examples

2403_88103571的博客 1010

51Nod1426 沙拉酱括号

题目看这里 我们考虑怎样得到最大答案 首先对原序列进行括号配对,没有配对上的那些可以直接扔掉不影响答案 让后我们有一个合法的括号序列 当一对括号与区间有相交但是不包含整个区间时,将会产生一个位置的浪费(在区间内的那个左括号或者右括号没法配对了),所以答案-1 那么一个区间的答案[l,r]应该是r-l+1-与这个区间相交的括号对数+包含这个区间的括号对数...

dianning8393的博客 131

拆开一个烧坏的IGBT模块,手把手教你识别过压、过流、过温的“案发现场”

本文详细解析了IGBT模块失效分析的实战技巧,通过观察铝层熔化纹路、焊锡溢出形态等物理痕迹,手把手教你识别过压、过流、过温的典型失效模式。文章提供了从基础工具包到现场快速诊断的完整流程,帮助工程师精准定位IGBT模块失效的根本原因。

weixin_30655569的博客 424

python实现RsaWithSHA256签名以及国密Sm3WithSm2签名

【代码】python实现RsaWithSHA256签名以及国密Sm3WithSm2签名。

weixin_45005677的博客 3352

51nod1679 连通率

1679 连通率 基准时间限制:0.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注A国拥有n个城市,其交通系统呈树状结构,即任意两个城市存在且仅存在一条路径将其连接。B国是A国的敌国企图秘密发射导弹打击A国,由于情报有限A国的特工们并不知道有哪几座城市会被打击。一座城市被炸毁后,与其相连的交通线也将损毁。现假设每座城市都有50%的概率被炸毁,问B国发动袭击后A国期...

qq_41510496的博客 261

Spark Sql 连接mysql

转载请务必注明原创地址为:http://dongkelun.com/2018/03/21/sparkMysql/ 1、基本概念和用法(摘自spark官方文档中文版) Spark SQL 还有一个能够使用 JDBC 从其他数据库读取数据的数据源。当使用 JDBC 访问其它数据库时,应该首选 JdbcRDD。这是因为结果是以数据框(DataFrame)返回的,且这样 Spark SQL操作轻松或便......

主要分享大数据相关的知识,如Spark、Hudi 1万+

51nod 1679 连通率

前言 发现我现在树的题什么也不会了。。 就只会树剖和dsu。。 题解 暴力的做法很容易想到 就是枚举两个点,那么他对答案的贡献就是2n−(dep[x]+dep[y]−2∗dep[LCA]+1)2n−(dep[x]+dep[y]−2∗dep[LCA]+1)2^{n-(dep[x]+dep[y]-2*dep[LCA]+1)} 然后我们胡乱考虑一下,就可以吧答案拆成2n/2(dep[x]+d...

OZY的博客 192

YOLO26训练教程,训练自己的数据集教学,从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 。实现0到1的完整教学过程。快速入门必看

本文详细介绍了YOLO26目标检测模型的配置与使用流程:1)下载YOLOv11源码并创建Python3.10虚拟环境;2)安装PyTorch2.5.1及相关依赖库;3)准备数据集并修改配置文件;4)编写训练脚本设置参数(640x640分辨率、500轮次);5)验证模型效果;6)使用训练好的模型进行推理测试;7)生成可视化热力图。整个过程涵盖了从环境搭建到模型应用的全流程,并提供了清华镜像源加速下载。

Ai缝合怪、助力小伙伴高效发论文 5273

31、航空软件标准DO - 178C/ED - 12C的实践解读

本文深入解读了航空软件标准DO-178C/ED-12C相较于DO-178B的主要变化,涵盖核心文本更新、各章节关键改进及新技术补充文件的影响。重点分析了目标与活动关系、需求层级定义、验证独立性、MC/DC覆盖、停用代码处理等关键变更,并提供了应对策略,包括流程调整、文档更新、工具选择和与认证机构沟通等建议,旨在帮助航空软件开发者确保合规性,提升软件安全性与可靠性。

tech5的博客 245

51Nod-1679-连通率

ACM模版描述题解很明显的树归问题,但是状态如何转移帮不好想,第一次见到这个题是我刚开始做 51Nod51Nod 时候的一场算法马拉松,很明显,那时候我并不会做,也不知道什么叫做树归,就一直没有再碰过了。今天看到这个题忽然想起来了,但是依然不知道具体怎么转移,先给一下官方题解吧……感觉这个转移很套路,其实可以理解为,在合并两个块儿时,左边块儿的贡献变为了右边块儿结点数的 22 次幂,但是不考虑两个块

逐梦者 509

基于STM32设计的智能防盗单车锁_349

本设计基于STM32F103RCT6单片机,研制了一种适用于户外环境的智能防盗单车锁系统。系统集成了GPS定位模块、ADXL345加速度传感器、4G通信模块(Air780E)、OLED显示屏、继电器模拟锁控模块等硬件,通过姿态感知实现车辆异常移动检测,在锁车状态下自动触发蜂鸣器报警并通过短信与APP通知用户。

866

【51Nod1679】连通率

A国拥有n个城市,其交通系统呈树状结构,即任意两个城市存在且仅存在一条路径将其连接。B国是A国的敌国企图秘密发射导弹打击A国,由于情报有限A国的特工们并不知道有哪几座城市会被打击。一座城市被炸毁后,与其相连的交通线也将损毁。现假设每座城市都有50%的概率被炸毁,问B国发动袭击后A国期望有多少对城市仍连通。样例解释:城市{1,2,3}被炸毁:没有城市连通 城市{1,2}被炸毁:没有城市连通 城市{

wang_sj的博客 449

【ARM CoreLink 系列 7 -- TZC-400控制器简介】

为了确保内存能够正确识别总线的信号控制位,新增一个TrustZone地址空间控制器(TrustZone Address Space Controller,TZASC)组件来实现对内存地址的安全扩展,将内存区域划分为安全内存区域和非安全内存区域,安全世界可以访问安全内存和非安全内存,而普通世界只能访问非安全内存,如下图所示:图 1-1内存区域的划分是在系统启动时通过配置 TZASC 组件(TZC-400/TZC-380)来实现的。TZC-400由和使能情况;安全访问权限;Base地址;

CodingCos的博客 1632

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

51Nod 1199 Money out of Thin Air(dfs序+线段树维护区间和)

一棵有N个节点的树,每个节点对应1个编号及1个权值,有2种不同的操作。 操作1:S x y z,表示如果编号为x的节点的权值 < y,则将节点x的权值加上z。(Single) 操作2:A x y z,表示如果编号为x的节点以及其所有子节点的权值平均值 < y,则将节点x及其所有子节点的权值加上z。(All) 给出树节点之间的关系,进行M次操作,问所有操作完成后,各个节点的权值为多少? 节点的

RCY_ZHU的博客 478

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

几种用于WSN的仿真工具

http://blog.youkuaiyun.com/piyajee/article/details/5644042

Big Mind Stories 1677

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【51nod 1737 配对】+ 链式前向星 + dfs + 输入外挂

1737 配对 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 给出一棵n个点的树,将这n个点两两配对,求所有可行的方案中配对两点间的距离的总和最大为多少。 Input 一个数n(1<=n<=100,000,n保证为偶数) 接下来n-1行每行三个数x,y,z表示有一条长度为z的边连接x和y(0<=z<=1,000,000,000)

楚江枫 489

【51nod1576】Tree and Permutation(树的重心)(DFS序)(树状数组)

传送门 解析: 有一点想法,考虑每条边被经过的次数,假设这条边将树给分为两个大小为x,yx,yx,y的联通块,则这条边的最大贡献为min⁡(x,y)∗2\min(x,y)*2min(x,y)∗2,显然我们考虑给每个点尽量选择在另一边的点就行了。 那么能不能让每条边的贡献达到可能的最大值呢?是可以的。 发现我们算的min⁡(x,y)\min(x,y)min(x,y)实际上就是以重心为根的时候,改变...

zxyoi_dreamer的博客(不定期诈尸) 308

最小发射功率下WSN的连通性和覆盖率

简述: 实验要求我们将传感器节点随机均匀分布在1x1的方格中,然后计算节点的最小共同发射功率(COMPOW),保证网络刚好连通,并计算出这些节点的覆盖率。为了解决这个问题,我们的做法是随机均匀部署100个节点在1x1的方格中,结合判断连通性的算法[1],找出它们刚好连通时每个节点的最小通信半径,然后根据简化的路径损耗模型计算出此时的的发射功率,即我们求的COMPOW值;在计算覆盖率的时候,我们利...

weixin_30715523的博客 533

Jzoj3467 最长上升子序列

维护一个序列,使它可以进行下面两种操作: 1.在末尾添加一个数字x 2.将整个序列变成第x次操作后的样子 在每次操作后,输出当前序列的最长上升子序列的长度 序列初始时为空 嗯,可持久化线段树的裸题 额这可是noip提高组难度的题,我们发现所有操作可以变成一棵树(离线做法老套路了) 让后每次最多修改数组上的一个值(考虑二分求LIS的过程)最后改回去就好了 注意dfs又卡栈(jzo

扩展の灰(Extended Ash/Cooevjnz) 3022

Jzoj4210 我才不是萝莉控呢

小Y:“小R你是萝莉控吗。”小R:“...”  为了避免这个尴尬的话题,小R决定给小Y做一道题。 有一个长度为n的正整数数组A,满足艾> =艾+ 1,现在构造一个数组B,令的Bi = ΣA[j] (j∈[i,n])。 现在,有一个N * N的网格图,左下角坐标是(1,1),右上角坐标是(N,N)。有一个小SB正在坐标为(n,1)的位置,每一时刻,如果他现在在(x,y),他可以选择走到(x?-

扩展の灰(Extended Ash/Cooevjnz) 1772

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

Jzoj4876 基因突变(红警系列)

邪恶的707刚刚从白垩纪穿越回来,心中产生了一个念头:我要统治人类!     但是统治人类是很庞大且复杂的一个工程,707尝试了洗脑,催眠,以及武装镇压都没能成功地统治人类,于是她决定从科学上对人类的基因进行研究从而达到他的目的。     707获取了人类的基因信息并尝试对基因进行实验。他发现可以把人类的基因看做一个只包含小写字母的字符串,并定义从头开始任意长度的基因为“源头基因”人类身上与源

扩展の灰(Extended Ash/Cooevjnz) 1436
上一篇: 51Nod1426 沙拉酱括号
下一篇: 51Nod1528 加号分配
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值