• 自动秒收录
  • 软件:1972
  • 资讯:54012|
  • 收录网站:101399|

IT精英团

poj1741树上的分治

poj1741树上的分治

浏览次数:
评论次数:
编辑: 景同
信息来源: 51CTO博客
更新日期: 2021-12-27 15:06:08
摘要

poj1741 树上的分治,题意是说给了n个点的树n#include#include#include#includeusingnamespacestd;constintmaxn=20005;intH[maxn],nx[maxn*2],to[maxn*2],numofE,dist[maxn*2];voidad...

  • 正文开始
  • 相关阅读
  • 推荐作品

题意是说给了n个点的树n=10000,问有多少个点对例如(a,b)他们的之间的距离小于等于k采用树的分治做

#包含输入输出流

#包含cstdio

#包含字符串。h

#包含算法

#包含矢量

使用命名空间标准;

const int maxn=20005

int H[maxn],nx[maxn*2],到[maxn*2],numofE,dist[maxn * 2];

void add(int u,int v,int d)

{

努莫菲;

dist[numofE]=d,

to[numofE]=v,

nx[numofE]=H[u],

h[u]=NuMofe;

}

无效初始化(整数n)

{

numfe=0;

记忆集(H,0,大小为(H));

}

判断是否需要交叉

bool center[maxn];

int subnum[maxn];

int Q[maxn 10],fa[maxn];

int searchroot(int cur)

{

int rear=0,root=cur

问后]=cur;fa[cur]=0;

for(int I=0;irearI){ 0

int x=Q[I];

for(int j=H[x];j;j=nx[j])

if(to[j]!=fa[x]中心[到[j]]==假)

问后]=to[j],fa[to[j]]=x;

}

int MIN=100000000

for(int I=后置-1;I=0;I-){ 0

int x=Q[I];

subnum[x]=1;

int MA=0;

for(int j=H[x];j;j=nx[j])

if(to[j]!=fa[x]中心[到[j]]==假)

MA=max(MA,subnum[to[j]]),subnum[x]=subnum[to[j]];

毫安=最大值(毫安,后亚纳姆[x]);

如果(马敏)最小值=最大值,根=x;

}

返回根;

}

int P[maxn];

整数n,K;

int count_pair(int s,int t){ 0

int ge=0,R=t;

for(int I=s;它;(一)

{

而(RSp[R-1]P[I]K)R-;

ge=R-s-(Ri?1:0);

}

返回ge/2;

}

void updateg(int s,int cur,int d)

{

int rear=0;

问后]=cur;fa[cur]=0;p[s]=d;

for(int I=0;irear(一)

{

int x=Q[I];

for(int j=H[x];j;j=nx[j])

{

int tto=to[j];

if(center[tto]||tto==fa[x])继续;

p[s]后部]=P[s i] dist[j],Q[后部]=tto,fa[tto]=x;

}

}

排序(前、后);

}

int dfs(int s,int cur,int d)

{

int root,tot=1;

root=搜索根(cur);

center[root]=true;

for(int I=H[根];我;i=nx[i])

{

int tto=to[I];

如果(居中(tto)继续;

int n=dfs(s tot,tto,dist[I]);

ans-=count_pair(s tot,s tot n);

tot=n;

}

p[s]=0;

排序(P s,P s tot);

ans=count_pair(s,s tot);

center[root]=false;

updateedg,cur,d);

返回小孩

}

int main()

{

memset(中心,false,大小为(中心));

while(scanf('%d%d ',N,K)=2)

{

if(!n!k)中断;

ans=0;

初始化(N);

for(int I=1;iN;I){ 0

int a、b、d;

scanf('%d%d%d ',a,b,d);

添加(a、b、d);添加(b、a、d);

}

dfs(0,1,0);

printf('%d\n ',ans);

}

返回0;

}

标签: 编程
poj2114寻找树上存在长度为k点对,树上的分治
« 上一篇
《Java基本技能》文章了解Java内部类的用法和原理
下一篇 »
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
  • C# SQL优化和Linq分页
    2阅读 0条评论 个赞
    C# SQL优化 及 Linq 分页,每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默。我眼中的程序员大多都不爱说话,默默承受着编程的巨大压力,除了技术上的交流外,他们不愿意也不擅长和别人交流,更不乐意任何人走……
  • 《Java基本技能》文章了解Java内部类的用法和原理
    2阅读 0条评论 个赞
    「Java基本功」一文读懂Java内部类的用法和原理,内部类初探一、什么是内部类?内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名……
  • poj2114寻找树上存在长度为k点对,树上的分治
    1阅读 0条评论 个赞
    poj2114 寻找树上存在长度为k点对,树上的分治,寻找树上存在长度为k点对,树上的分治代码和这个差不多,改一下判断的就好#include#include#include#include#includeusingnamespacestd;constintmaxn=10004;intH[maxn],nx[maxn*2],to...……
  • poj3133插头数据处理
    1阅读 0条评论 个赞
    poj3133 插头dp,#include#include#include#include#includeusingnamespacestd;constintINF=100000000;intnrows,ncols;intG[10][10];structState{intup[9];in...……
  • poj2987求最大权闭合回路
    3阅读 0条评论 个赞
    poj2987 求最大权闭合回路,建图差不多和以前做的差不多,就是最后询问这个闭合子图有多少个的时候,只要输出这个图的S集合,就是进行dfs能遍历到的点一定在S集合中,不能遍历到的点在T集合中#include#include#include#include#include#includeusingnamespaces...……
  • zoj3820树的直径二分
    0阅读 0条评论 个赞
    zoj3820 树的直径+二分,这题是个遗憾!!!!!当时一直不敢相信两个站一定在直径上,赛后想想自己真的是脑袋抽风,如果其中一个站不在直径上就反向的说明了这条不是直径。可以很明白我们可以肯定的是有一个点一定在直径上假如另外一个点不在直径上,那么他在分支上,那么可以知道直径上的某点一定大于这个分支的最远点,显然放在这个分支上是...……
  • acdream1174合并同类项
    1阅读 0条评论 个赞
    acdream1174 合并同类项,这题说的是给出N,a[1]...a[N],还有M,b[1]...b[M]longlongans=0;for(inti=1;i#include#include#include#includeusingnamespacestd;typedeflonglongll;...……
  • 什么事:IntelliJ IDEA何如,菲兰达!(2021年)范仲淹,范仲淹)
339 www .百度 com/more/
<h2>一、IntelliJ IDEA激活码 免费!</h
    2阅读 0条评论 个赞
    IntelliJ IDEA激活码,免费!(2021年最新永久激活码),一、IntelliJ IDEA激活码,免费!如果下边这个IDEA激活码过期失效了的话,大家可以关注微信公众号:Java团长,然后回复“ 激活码 ”即可获取最新IDEA激活码,公众号的激活码每24小时更新一次~9ADCNKZL59-eyJsaWNlbnNlSWQiOiI5QURDTktaTDU5IiwibGljZW5zZWVOYW1lIjoi5r+A5rS75p2l5rqQIHd3d8K3YW……
  • 学习java需要多长时间
    6阅读 0条评论 个赞
    学java一般多久,学java一般多久?今天朗沃小刘小编来说说,其实学java一般多久?因人而异,每个人学习情况不一样,学习效率也不一样,例如一个零基础的小白自学java,每天学习按8个小时来算,而且在有学习资料的基础上,每天学习,从零到找到工作,起码要半年起步,而且还要有项目经验,否则是不会有公司要你的。而一个有一些基础的人,在经过有人系统的教学后,是可以很快学会掌握java的,大概四个月左右。不过java相对于C、C++、java而言,java无疑简单了很多,不需要指针,不需要销毁对象,使得对java……
  • HttpWebRequest类
    1阅读 0条评论 个赞
    HttpWebRequest类,HttpWebRequest类与HttpRequest类的区别。HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息。而HttpWebRequest用于客户端,拼接请求的HTTP报文并发送等。HttpWebRequest这个类非常强大,强大的……
  • keepalived安装和配置文件的详细说明
    1阅读 0条评论 个赞
    keepalived安装及配置文件详解,Keepalived是使用C语言编写的`路由热备软件`,该项目软件起初是专门为...……
  • 代码评审实践-Gerrit自动触发JenkinsCI
    2阅读 0条评论 个赞
    CodeReview实践-Gerrit自动触发JenkinsCI,当前团队使用Gerrit来做代码管理、CodeReview。计划实现当review提交到了Gerrit并且review通过(merged)自动触发Jenkins流水线。以前接触Gitlab比较多,Gerrit还是第一次开始用,踩了点坑记录下来。本文主要讲述GerritTrigger流水线配置,关于服务器配置等细节问题暂不研究,降低复杂性。……
  • 忘记带u盘了?别担心!文件传输可以用一行python代码来完成
    6阅读 0条评论 个赞
    忘带U盘了??别急!一行python代码即可搞定文件传输,近日发现了python一个很有趣的功能,现在在这里给大伙儿做一下分享……
  • MCU_STM32CUBEMX配置生成CAN2的初始化代码的修改
    1阅读 0条评论 个赞
    MCU_STM32CUBEMX配置生成CAN2的初始化代码的修改,备注一个STM32CUBEMX配置CAN2的遗忘点。STM32F105/107(405/407)有两个CAN,一般我们两个都会用起来,用STM32CubeMX配置好后,有一个经常容易忘记的地方就是SlaveStartFilterBank这个参数。这里他是最重要的和hcan1不一致的地方,   CAN2_FilerConf.SlaveStartFilterBank=14;这一句必须开启……
  • hdu5290树形数据处理
    1阅读 0条评论 个赞
    hdu5290树形dp,题意给了n个点的数每个点有一个w[i]权值,如果你选择了i这个点那么距离i这个点距离为w[i]的点将被除去,最后问选则尽量少的点把这n个点全部删除1#include#include#include#includeusingnamespacestd;constintmaxn=1...……
  • hdu5293 lca dp树状数组时间戳
    1阅读 0条评论 个赞
    hdu5293 lca+dp+树状数组+时间戳,题意是给了n个点的树,会有m条链条链接两个点,计算出他们没有公共点的最大价值,公共点时这样计算的只要在他们lca这条链上有公共点的就说明他们相交dp[i]为这个点包含的子树所能得到的最大价值sum[i]表示这个点没有选择经过i这个点链条的总价值两种选择这个点没有被选择dp[i]=...……
  • hdu4749 kmp改进
    3阅读 0条评论 个赞
    hdu4749 kmp改进,这题说的是给了一个模板串然后又给了一个串需要找出类似的按个模板串,改相等的位置要相等该大于的位置到大于我们将模板串做好失配指针就ok了,然后匹配和原来的匹配不同,这个匹配需要的是相对匹配,只要他们的相对位置相同就ok了,每次计算要插入的数在这个匹配中的排位#include#include...……
  • hdu1762树的上的查询
    1阅读 0条评论 个赞
    hdu1762 树的上的查询,2015-10-0720:44:42题意问的是给了一颗树,然后又1000000次查询u,v,问不在树路径上的点的编号最小值,以1为根建这颗树,然后在同一棵子树中的点子让就输出1否则我们记录每个点从离1最近的那个点也就是1的孩子,到该点所经过的最小值,以及在他父亲到1的孩子,这段间和他不在同一条叉...……
  • hdu3879最大权闭合回路
    1阅读 0条评论 个赞
    hdu3879 最大权闭合回路,题意:有n个基站可以建立,然后m个团体会使用这些基站进行工作,地i个团体会适应AiBi这两个基站,如果建成收益Ci,第j个基站花费Pj,求如何建立使得收益最大,将每个团体看以一个点,然后从这个点出发向那两个点建一条边,他自己想s建立一个为Ci的边,第j个基站想t建立一个容量为Pj的边,跑一...……
  • poj3074 DLX精准报道
    1阅读 0条评论 个赞
    poj3074 DLX精确覆盖,题意:解数独分析:完整的数独有四个充要条件:1.每个格子都有填数字2.每列都有1~9中的每个数字3.每行都有1~9中的每个数字4.每个9宫格都有1~9中的每个数字可以转化成精确覆盖问题。每行表示一个格子的一种填法,1~81列表示这个格子的位置,82~162列表示这是哪一行的什么数字,163~243列...……
  • 今日,苹果发布 iPadOS/iOS 13 首个公测版更新
    0阅读 0条评论 个赞
    iOS 13 Beta 2 体验:5 大新功能改进在WWDC 2019 大会上除了宣布SwifitUI , 大家还是关注 iOS 13 Beta 2 体验:5 大新功能改进,支持手机直接升级,在苹果推出 iOS 13 开发者版两周后,6 月 18 日凌晨,iOS 13 终于迎来了第二版系统(beta 2)更新。本次 iOS 13 beta 2 升级无需再像 beta 1 版本那样需要用 macOS……
  • 【备战PMP】项目成本管理—挣值计算
    7阅读 0条评论 个赞
    挣值:挣值是针对于计划价值而言的,计划是提前编制完成的,随着项目的实施,就是把纸面上的计划价值一点一点落地,"挣"回来,形成"挣值"。挣值就是考察截止到某个时间点,项目计划进展到什么程度,实际进展到什么程度了,计划该花多少钱,实际花了多少钱了。基本概念:PV(planned value)计划价值,截止某个时间点计划要完成的工作价值,是计划完成工作的预算价值。AC(actual cost)实际成本,……
  • Java开发人员应该知道什么才不会被公司淘汰?隔壁的每个人都在哭
    0阅读 0条评论 个赞
    Java开发者应该会哪些东西才不会被公司淘汰?隔壁都馋哭了,Java开发者应该会哪些东西才不会被公司淘汰?隔壁都馋哭了……
  • 【春天从0开始】IOC容器的Bean管理-Bean的范围
    4阅读 0条评论 个赞
    【Spring 从0开始】IOC容器的Bean管理 - Bean 的作用域,bean的作用域,其实就是设置创建bean的实例是属于单实例,还是多实例。1.默认单实例默认情况下,创建的bean是单实例对象。比如,用之前的代码为例:@TestpublicvoidtestCollection2(){ApplicationContextcontext……
  • 谈谈内容营销和SEO如何支持网站排名
    12阅读 0条评论 个赞
    GOOGLE已经提醒过,文章字数并非影响网站排名的因素之一,在内容为王的时代里,撰写有价值、好的文章内容已经是必须的事实,好的文章通过SEO的加成,好的网站排名会自然生成。结论就是,一篇好的文章,是可以解决用户的需求、符合用户意图,让用户得到自己认为有价值的资讯!……
  • java 从零开始手写 redis(11)clock时钟淘汰算法详解及实现
    4阅读 0条评论 个赞
    前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(三)redisexpire过期原理java从零手写实现redis(三)内存数据如何重启不丢失?java从零手写实现redis(四)添加监听器java从零手写实现redis(五)过期策略的另一种实现思路java从零手写实现redis(六)AOF持久化原理详解及实现java从零开始手写redis(七)LRU……
  • 没有SEO的DiscuzQ值不值得站长选择吗?
    15阅读 0条评论 个赞
    没有SEO的DiscuzQ 值不值得站长选择,我来为各位站长朋友解析一下。……
  • RocketMQ如何应对每天1500亿条的数据处理?
    1阅读 0条评论 个赞
    同程艺龙的机票、火车票、汽车票、酒店相关业务已经接入了 RocketMQ,用于流量高峰时候的削峰,以减少后端的压力。同时,对常规的系统进行解耦,将一些同步处理改成异步处理,每天处理的数据达 1500 亿条。在近期的 Apache RocketMQ Meetup 上,同程艺龙机票事业部架构师查江,分享了同程艺龙的消息系统如何应对每天 1500 亿条的数据处理。通过此文,您将了解到:同程艺龙消息系统的……
  • Python动态类型简介
    0阅读 0条评论 个赞
    在C语言中使用变量, 需先声明其类型, 如int a = 3, 而Python中直接 a = 3就行, Python怎么知道那代表了一个整数呢? 在Python中类型是在运行过程中决定的, 而不是事先声明的. 像上面Python中运行赋值语句 a = 3, 代码中没有说明a是整数对象类型, 但一样也能工作, 可按如下思路来理解该原由.变量创建: 一个变量, 就像a, 当代码第一次给它赋值时就创建了……
  • Django2.2-DateTimeField去掉微秒
    5阅读 0条评论 个赞
    环境Django2.2Mysql5.7问题不管如何设置时间格式,数据库字段保存都有微秒(我的需求是去掉微秒),如下图#models中定义字段exetime=models.DateTimeField(auto_now_add=True,verbose_name='执行时间')<!--more-->期间尝试了修改setings.pyDATETIME_FORMAT="%Y-%m-%d%H:%……
  • JDBC对Mysql事务的控制
    6阅读 0条评论 个赞
    JDBC对Mysql事务的控制……
  • Java方法、构造方法、finalize()方法
    3阅读 0条评论 个赞
    Java 方法、构造方法、finalize() 方法,Java方法在前面几个章节中我们经常使用到 System.out.println(),那么它是什么呢?println()是一个方法。System是系统类。out是标准输出对象。这句话的用法是调用系统类System中的标准输出对象out中的方法println()。那么什么是方法呢?Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象...……
  • Python 抓取网页乱码原因分析
    2阅读 0条评论 个赞
    在用 python2 抓取网页的时候,经常会遇到抓下来的内容显示出来是乱码。发生这种情况的最大可能性就是编码问题:运行环境的字符编码和网页的字符编码不一致。比如,在 windows 的控制台(gbk)里抓取了一个 utf-8 编码的网站。或者,在 Mac / Linux 的终端(utf-8)里抓取了一个 gbk 编码的网站。因为多数网站采用 utf-8 编码,而不少人又是用 windows,所有这……
  • spark调优系列之内存和GC调优
    4阅读 0条评论 个赞
    spark调优系列之内存和GC调优浪尖 浪尖聊大数据 本文基于spark1.6讲解。一,基本概述调优内存的使用主要有三个方面的考虑:对象的内存占用量(你可能希望整个数据集都适合内存),访问这些数据的开销,垃圾回收的负载。默认情况下,java的对象是可以快速访问的,但是相比于内部的原始数据消耗估计2-5倍的空间。主要归于下面三个原因:1),每个不同的Java对象都有一个“对象头”,它大约是16个字……
  • 红岭创业意向实物兑换金清算:6月前公开兑换资产
    2阅读 0条评论 个赞
    据界面新闻报道,红岭创投总裁项旭近日透露,疫情和P2P清退环境变化提高了清收难度,未来拟将实物放到平台上进行清退。他表示,红岭创投初步打算把实物兑付列入议程。6月份以前,红岭创投会陆续在网站上披露可用于实物兑付的资产、具体估值情况等。……
  • 瓦特、蒸汽机与英国皇家海军的故事
    0阅读 0条评论 个赞
    瓦特、蒸汽机与英国皇家海军的故事,mob604756fbd94e的博客原创的Java文章。……
  • @程序员,你需要点金融常识
    2阅读 0条评论 个赞
    01、对金融的偏见常常听见一句俗话:“越靠近钱的地方越能挣钱。”很遗憾,以前的我总是对这句充满铜臭味的话视若罔闻——我是一名程序员,所以我的核心工作就是钻进代码的世界里,把代码写得尽可能的完善,少出 bug。这种思维的局限性,一直把我封闭在一个很狭隘的世界里。我不肯去了解代码之外的世界,比如说金融。以至于我在开发“大宗期货交易平台……
  • 有哪些可以提升编程技能的好书值得推荐?
    1阅读 0条评论 个赞
    图源:unsplash提高编程技术离不开大量的练习,这是在专业上有所提高的唯一途径。但在此之前,我们最好先掌握理论知识,再将其应用于实践,这样你的理解会更加深刻。在软件开发行业中,人们常常通过阅读文章、书籍、参加会议、尝试新的库、模式和范例不断提升自我。笔者为了提高编程技能阅读了颇多书籍,本文为你精选了一份书单,能够帮助你编写简练代码,并在职业生涯中达到新的高度。罗伯特·塞奇威克的《算法》这本书讲……
  • 分布式集成在Knative中的应用:Knative在OpenShift上的实践5
    0阅读 0条评论 个赞
    Camel的应用在一般的大型IT组织中,很少有人会构建完全隔离的新应用程序,而该应用程序会与所有其他旧系统或新系统完全分离。许多实时用例要求新旧系统共享和交换数据。Apache Camel是可帮助您集成系统的开源框架。Apache Camel允许集成系统在它们之间生成和使用数据。它提供了300多个组件,其中包括与TCP,ActiveMQ,FTP,Salesforce.com之类的源的集成连接器,这……
  • 面试官问 Spring AOP 中两种代理模式的区别,我懵逼了
    18阅读 0条评论 个赞
    基本介绍代理模式是一种结构性设计模式。为对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,并允许在将请求提交给对象前后进行一些处理。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。代理模式主要有三种不同的形式:静态代理:由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的 .class 文件就已经存在了动态代理(JDK 代理、接口代理):……