LGOJ4299 首都】的更多相关文章

这题是 \(LCT\) 维护子树信息中的 \(LCT\) 维护重心 Description link 题意概述:给定一个森林,要求支持以下操作 1.链接两个点 2.求一个点所在树的重心 3.求所有重心编号的异或和 Solution \[Begin\] 看到有链接和询问操作的题目,我们想到了\(LCT\) 首先是一些重心的性质,本题可以用到: \(1.\) 点到树上所有点的距离和最小的那个点就是中心 \(2.\) 重心在添加一条边之后只会移动最多一条边的距离 \(3.\) 如果我们联通森林里的两棵…
题目描述 在X星球上有N个国家,每个国家占据着X星球的一座城市.由于国家之间是敌对关系,所以不同国家的两个城市是不会有公路相连的. X星球上战乱频发,如果A国打败了B国,那么B国将永远从这个星球消失,而B国的国土也将归A国管辖.A国国王为了加强统治,会在A国和B国之间修建一条公路,即选择原A国的某个城市和B国某个城市,修建一条连接这两座城市的公路. 同样为了便于统治自己的国家,国家的首都会选在某个使得其他城市到它距离之和最小的城市,这里的距离是指需要经过公路的条数,如果有多个这样的城市,编号最小…
Update:原来的洛谷U21715已成坑qwq 已经被某位管理员巨佬放进公共题库啦!又可以多一个AC记录啦! 洛谷题目传送门 其实也可以到这里交啦 思路分析 动态维护树的重心 题目中说到国家的首都会选在某个使得其他城市到它距离之和最小的城市,那不就是树的重心了嘛.树的重心性质真的很好,看看wuhulala巨佬的这篇博客. 网上大多数解法都是启发式合并.利用了以重心为根的子树大小不超过原树的一半,每次合并两颗树的时候,小的往大的上面合并,而且是一个点一个点地link上去,每次link完检查一下这…
国 家 名 称 首  都 中华人民共和国 People's Republic of China 北京 Beijing 蒙古 Mongolia 乌兰巴托 Elggydggmgj 朝鲜 Democratic People's Republic of Korea 平壤 Pyongyang 韩国 Republic of Korea 首尔 Seoul 日本 Japan 东京 Tokyo 菲律宾 Republic of the Philippines 马尼拉 Manila 印度尼西亚 Republic of…
项目名称:首都医科大学附属北京安贞医院全院级PACS系统采购项目 项目编号:TC140VCF0 采购人名称:首都医科大学附属北京安贞医院 采购人地址:北京市朝阳区安贞里 采购人联系方式:010-64412431 采购代理机构全称:中招国际招标有限公司 采购代理机构地址:北京市海淀区皂君庙14号院9号楼 采购代理机构联系方式:010-62108274 采购用途:自用 首次公告日期:2014年11月5日 变更日期:2014年11月17日 变更内容:技术参数等变更 一.删除原资格条件:(2)具有<计算…
题目描述 在X星球上有N个国家,每个国家占据着X星球的一座城市.由于国家之间是敌对关系,所以不同国家的两个城市是不会有公路相连的. X星球上战乱频发,如果A国打败了B国,那么B国将永远从这个星球消失,而B国的国土也将归A国管辖.A国国王为了加强统治,会在A国和B国之间修建一条公路,即选择原A国的某个城市和B国某个城市,修建一条连接这两座城市的公路. 同样为了便于统治自己的国家,国家的首都会选在某个使得其他城市到它距离之和最小的城市,这里的距离是指需要经过公路的条数,如果有多个这样的城市,编号最小…
Description 在X星球上有N个国家,每个国家占据着X星球的一座城市.由于国家之间是敌对关系,所以不同国家的两个城市是不会有公路相连的. X星球上战乱频发,如果A国打败了B国,那么B国将永远从这个星球消失,而B国的国土也将归A国管辖.A国国王为了加强统治,会在A国和B国之间修建一条公路,即选择原A国的某个城市和B国某个城市,修建一条连接这两座城市的公路. 同样为了便于统治自己的国家,国家的首都会选在某个使得其他城市到它距离之和最小的城市,这里的距离是指需要经过公路的条数,如果有多个这样的…
题目描述 在X星球上有N个国家,每个国家占据着X星球的一座城市.由于国家之间是敌对关系,所以不同国家的两个城市是不会有公路相连的. X星球上战乱频发,如果A国打败了B国,那么B国将永远从这个星球消失,而B国的国土也将归A国管辖.A国国王为了加强统治,会在A国和B国之间修建一条公路,即选择原A国的某个城市和B国某个城市,修建一条连接这两座城市的公路. 同样为了便于统治自己的国家,国家的首都会选在某个使得其他城市到它距离之和最小的城市,这里的距离是指需要经过公路的条数,如果有多个这样的城市,编号最小…
题目 P4299 首都 做法 这题是动态维护树的重心,连边后找到两棵树的重心拉一条链(性质:新重心在链上),然后暴力爬 要注意: 1.是找重心的过程中要先把旋转标记放下来,因为\(Splay(x)\),这个操作只把\(x\)到根节点的跟上旋有关标记放下来 而找重心过程中跟整个链有关 2.并查集的时候记得把\(z\)也改变一下,不然会死循环,卡了好久\(emmm\) My complete code #include<cstdio> #include<iostream> #inclu…
[BZOJ3510]首都 Description 在X星球上有N个国家,每个国家占据着X星球的一座城市.由于国家之间是敌对关系,所以不同国家的两个城市是不会有公路相连的. X星球上战乱频发,如果A国打败了B国,那么B国将永远从这个星球消失,而B国的国土也将归A国管辖.A国国王为了加强统治,会在A国和B国之间修建一条公路,即选择原A国的某个城市和B国某个城市,修建一条连接这两座城市的公路. 同样为了便于统治自己的国家,国家的首都会选在某个使得其他城市到它距离之和最小的城市,这里的距离是指需要经过公…
Code: #include<bits/stdc++.h> #define maxn 200000 #define inf 1000000000 using namespace std; void setIO(string s) { string in=s+".in",out=s+".out"; freopen(in.c_str(),"r",stdin); } multiset<int>sonmax[maxn]; int…
近日.正益无线AppCan依托东方航空.吉祥航空.国家电网.中化集团等大客户项目的丰富成功经验,凭借企业移动信息化建设的良好口碑.强大的移动化实施部署经验和高速响应的技术团队,在与多家国内外移动厂商比拼中,脱颖而出,成功中标首都机场移动平台项目,全力护航首都机场各项业务移动化进程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravit…
Description 在X星球上有N个国家,每个国家占据着X星球的一座城市.由于国家之间是敌对关系,所以不同国家的两个城市是不会有公路相连的. X星球上战乱频发,如果A国打败了B国,那么B国将永远从这个星球消失,而B国的国土也将归A国管辖.A国国王为了加强统治,会在A国和B国之间修建一条公路,即选择原A国的某个城市和B国某个城市,修建一条连接这两座城市的公路. 同样为了便于统治自己的国家,国家的首都会选在某个使得其他城市到它距离之和最小的城市,这里的距离是指需要经过公路的条数,如果有多个这样的…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3510 题解 首先每一个连通块的首都根据定义,显然就是直径. 然后考虑直径的几个性质: 定义:删去这个点以后剩下的连通块最大的最小的点为重心. 一棵树最多只能有两个相邻的直径: 一棵树的重心到一棵树中所有点的距离和最小.(这个也是题目的条件转化为重心的原因) 两棵树的并的重心在两棵树各自的重心的连线上. 一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置. 有了这些性质,我们可以发现,…
BZOJ权限题. 洛谷 题目描述 在X星球上有N个国家,每个国家占据着X星球的一座城市.由于国家之间是敌对关系,所以不同国家的两个城市是不会有公路相连的. X星球上战乱频发,如果A国打败了B国,那么B国将永远从这个星球消失,而B国的国土也将归A国管辖.A国国王为了加强统治,会在A国和B国之间修建一条公路,即选择原A国的某个城市和B国某个城市,修建一条连接这两座城市的公路. 同样为了便于统治自己的国家,国家的首都会选在某个使得其他城市到它距离之和最小的城市,这里的距离是指需要经过公路的条数,如果有…
今天对爬取程序进行了优化,修正了错误. 遇到了两个问题与错误: 1.忘记了对文件的读写设置格式,导致导入Hive数据库无法正常显示以及写入. 2.文件的读写操作有误导致数据量仅有应该有的1/2 不完整的爬取经过Hive数据库处理后得到的数据如下: 总数:15031 20061298 20072104 2008658 2009409 2010770 2011318 2012289 2013480 20142031 20151884 20161738 20171075 2018853 2019100…
时间:2020.2.6 今天把昨天做到一半的首都之窗百姓信件爬取完成了. 源码如下: import requests import io from bs4 import BeautifulSoup #信1705-1 赵路仓 kv = {'user-agent': 'Mozilla/5.0'} id='AH20010700179' def read(): f=open('E://list.txt','r') for line in f: id=f.readline().rstrip('\n') p…
日期:2020.01.22 博客期:130 星期三 [代码说明,如果要使用此页代码,必须在本博客页面评论区给予说明] //博客总体说明 1.准备工作(本期博客) 2.爬取工作 3.数据处理 4.信息展示 今天来说一说爬取的工作进展,我们的要求是爬取首都之窗的信件类型,那么我们就开始吧! 首先,先找到网页:http://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.flow 然后找到网页的结构,发现是简单的HTML结构,那我们就可以启…
题目   点这里看题目. 分析   做法比较容易看出来.我们对于每个城市,找出那些 " 如果这个城市在首都内,则必须在首都内的其它城市 " ,也就是为了让这个城市的小镇连通而必须选的城市.   接着,我们新建一个有向图,将一个城市看成一个点,一条边\((u,v)\)代表 " \(u\)在首都则\(v\)必在首都 " ,即上文所说的关系.对这个图进行强连通分量分解.假想我们对这个图缩点.缩点后的图上,一个点如果被选在首都内,它所能到达的点都必须选在首都内,我们称选定它…
这个题目很有意思 QWQ 根据题目描述,我们可以知道,首都就是所谓的树的重心,那么我们假设每颗树的重心都是\(root\)的话,对于每次询问,我们只需要\(findroot(x)\)就可以. 那么如何处理\(link\)操作呢QWQ 这里是看了题解,我才知道是怎么做的 大致的思想就是: !启发式合并! 首先,这里需要注意树的中心具有的两个性质: 1.以这个点为根,那么所有的子树(不算整个树自身)的大小都不超过整个树大小的一半. 2.假设两个联通块x和y进行合并,而且\(size(x)>size(…
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #define maxn 100005 #define maxm 400005 using namespace std; ],size[maxn],add[maxn],list[maxn],tail; bool rev[maxn]; bool which(in…
# -*- coding:utf-8 -*- import urllib2import lxml.htmlfrom lxml import etree def main(): file = open('./countrys.txt', 'w+') file.close() countrys = [] url = 'https://guojiadiqu.51240.com/' html = urllib2.urlopen(url).read() # tree = lxml.html.fromstr…
题目大意: 有n个节点m条边,边都是单向的,请你添加最少的边使得起点s到其他与其他每一个点之间都能互相到达 这题一看就是一个缩点啊 其实对于原有的m条边相连的一些点,如果之前他们已经形成了强连通分量(scc),那么它们之前就可以相互到达(不用修路),对于这些点我们可以把它们“缩”成一个“点”,这其实就是Tarjian缩点的思想 其实luogu里还有很多缩点的模板题,自己去找找吧,都不难的 那么如果你会了缩点,这个题只要缩完点之后统计一下入度为0的点就行了(让强连通分量之间连边) #include…
即动态维护树的重心.考虑合并后的新重心一定在两棵树的重心的连线上.于是对每个点维护其子树大小,合并时在这条链的splay上二分即可.至于如何维护子树大小,见https://blog.csdn.net/neither_nor/article/details/52979425.明明都看那么多题解说要注意pushdown,结果还是因为这个调了一年,心态爆炸.(下面代码复杂度可能是假的,因为dfs完没有splay叶子,反正也没人卡我就不管了) #include<iostream> #include&l…
题目链接 BZOJ 洛谷 详见这. 求所有点到某个点距离和最短,即求树的重心.考虑如何动态维护. 两棵子树合并后的重心一定在两棵树的重心之间那条链上,所以在合并的时候用启发式合并,每合并一个点检查sz[]大的那棵子树的重心(记为root)最大子树的sz[]*2是否>n: 若>n,则向fa移动一次(先把合并点Splay到根).重心还一定是在sz[]大的那棵子树中,且移动次数不会超过sz[]小的子树的点数(所以总移动次数不会超过O(n)?). 复杂度 \(O(nlog^2n)\) 具体实现..想通…
这题 FlashHu 的优化思路值得借鉴 前置引理 树中所有点到某个点的距离和中,到重心的距离和是最小的. 把两棵树通过某一点相连得到一颗新的树,新的树的重心必然在连接原来两棵树重心的路径上. 一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置. 一棵树最多有两个重心,且相邻:同时,拥有奇数个节点的树只有一个重心 其实是树的重心本身的定义:各个子树大小皆不超过总节点数的一半的节点即为树的重心(证明:不管向哪一侧移动,对应的子树节点个数都是 $\le$ 树的总节点一半的,也就是说,剩下的节…
Sol \(LCT\)动态维护树重心 方法一 因为只有加边,所以可以暴力启发式合并,维护重心 维护子树信息,子树大小不超过一半 复杂度两只\(log\) 方法二 扣出两个重心的链,链上二分找 每次\(Splay\)重心,应该是一只\(log\)的吧... # include <bits/stdc++.h> # define RG register # define IL inline # define Fill(a, b) memset(a, b, sizeof(a)) using names…
既然是中文题目,这里便不给题意. 分析: 这个题的做法据说是启发式合并? 但是我不会啊…… 进入正题,LCT是怎样做掉这道题的.记得在前面的一篇<大融合>的题解中,介绍过LCT维护子树信息的做法. 一句话概括就是要维护虚子树和实子树的size,适时修改,保持其正确性. 这道题关键并不在这,但我们必须要维护这样一个信息才可以做. 很简单很直观的一个想法,因为我们每次合并两棵树时,新的重心必然出现在原来两个重心的路径上. 这是为什么?我们假设如果不在这条路径上,而是其中一棵树的其他子树的某一点,那…
洛谷P4299传送门 题目大意:给你一颗树,边是一条一条连上去的 在连接过程中会存在询问,询问当前节点所在联通块(其实是一颗树)的重心是哪个节点 以及森林中所有树的重心的异或和 在做这道题之前,要先了解树的重心的一个性质: 两棵树合并时,新树的重心在合并后,原来两颗树的重心的两个节点构成的那条链上 了解了这条性质,思路就不难想了 当连接两个节点时,先寻找它们所在原树的重心,然后连接这两个节点,在取出两个原树重心那两个节点构成的那条链 每次寻找重心,连接节点,取出重心形成了链,复杂度约为 如果我们…
经人提醒忘记发网址id的爬取过程了, http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId=AH20021300174 AH20021300174为要爬取的内容 现代码如下: import json import requests import io url="http://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.…