【Foreign】远行 [LCT]】的更多相关文章

远行 Time Limit: 20 Sec  Memory Limit: 256 MB Description Input Output Sample Input 0 5 10 1 4 5 2 3 2 5 2 1 1 5 3 1 1 4 2 3 2 5 1 5 2 2 1 Sample Output 0 1 0 3 2 3 HINT Main idea 每次连上一条边,询问一个点和其能到达最远的点的距离. Solution 由于每次要脸上一条边,我们显然使用LCT,然后一个点到达的最远的点必然是…
给你 n 个点,支持 m 次操作,每次为以下两种:连一条边,保证连完后是一棵树/森林:询问一个点能到达的最远的点与该点的距离.强制在线. n≤3×10^5 n≤3×10^5 ,m≤5×10^5 m≤5×10^5 . 我们知道与一个点距离最大的点为任意一个直径的两个端点之一. 两棵树之间连一条边,新树直径的两个端点一定为第一棵树直径的两个端点和第二棵树直径的两个端点这四者中之二. 于是我们可以用lct和并查集来维护树的直径的两个端点. #include<iostream> #include<…
树的直径一定是原联通块4个里的组合 1.LCT,维护树的直径,这题就做完了 2.直接倍增,lca啥的求求距离,也可以吧- // powered by c++11 // by Isaunoya #include <bits/stdc++.h> #define rep(i, x, y) for (register int i = (x); i <= (y); ++i) #define Rep(i, x, y) for (register int i = (x); i >= (y); -…
容易写出nQ的暴力 由于数据是期望的时间 所以直接dfs可以跑的很快 可以拿到70分. 当然 可以进一步优化暴力 使用换根dp 然后可以将暴力优化到n^2. const int MAXN=300010; int n,Q,T,len,maxx; int lin[MAXN],d[MAXN],ver[MAXN<<1],nex[MAXN<<1]; inline void add(int x,int y) { ver[++len]=y; nex[len]=lin[x]; lin[x]=len…
因为没A/改几道题,就一起写了 题目在LOJ上都能找到 2019.2.28 100+20+12 前两个小时一直在睡觉+想题也没思路,我太菜了 T1 洗衣服 分开处理出洗衣服和烘干的时间,然后一边正着排序一边倒着排序,依次匹配(小的配大的) 正确性......不会证,意会 #pragma GCC optimize(2) #include<queue> #include<cstdio> #include<cstring> #include<algorithm>…
Prelude 快要THUWC了,练一练板子. 传送到LOJ:o(TヘTo) Solution 首先有一条定理. 到树中任意一点的最远点一定是直径的两个端点之一. 我也不会证反正大家都在用,似乎可以用反证法搞一搞? 然后就是LCT和并查集随便做了. 对于每个连通块,只需要保存这个连通块的直径的两个端点就可以了. 然后合并两个连通块的时候更新一下. Code #include <cstring> #include <algorithm> #include <cstdio>…
题面 传送门 题解 要不是因为数组版的\(LCT\)跑得实在太慢我至于去学指针版的么--而且指针版的完全看不懂啊-- 首先有两个结论 1.与一个点距离最大的点为任意一条直径的两个端点之一 2.两棵树之间连一条边新树直径的端点一定是第一棵树直径的两个端点和第二颗树直径的两个端点这四个点之二 然后用并查集维护联通块的直径就行了.注意因为这里强制在线,所以得用\(LCT\)来维护距离 并不建议看代码因为这个代码非常难懂哪怕我加满注释您都不一定看得懂 //minamoto #include<bits/s…
题目描述 给你 $n$ 个点,支持 $m$ 次操作,每次为以下两种:连一条边,保证连完后是一棵树/森林:询问一个点能到达的最远的点与该点的距离.强制在线. $n\le 3\times 10^5$ ,$m\le 5\times 10^5$ . 题解 树的直径+并查集+LCT 与直径相关的结论1:与一个点距离最大的点为任意一条直径的两个端点之一. 与直径相关的结论2:两棵树之间连一条边,新树直径的两个端点一定为第一棵树直径的两个端点和第二棵树直径的两个端点这四者中之二. 于是问题就变简单了,用并查集…
染色 Time Limit: 20 Sec  Memory Limit: 256 MB Description Input Output Sample Input 13 0 1 0 2 1 11 1 10 1 9 9 12 2 5 5 8 2 4 2 3 4 6 4 7 7 q 0 O 4 q 6 q 2 O 9 q 9 q 2 Sample Output 2.0000000000 1.0000000000 0.8571428571 0.5000000000 1.8571428571 HINT…
题目传送门 https://loj.ac/problem/6038 题解 根据树的直径的两个性质: 距离树上一个点最远的点一定是任意一条直径的一个端点. 两个联通块的并的直径是各自的联通块的两条直径的四个端点的六个连线段之一. 于是我们可以维护每一个联通块的直径就可以了,这个可以用并查集实现. 但是从六条路径中选择直径需要求出每一条路径的长度,怎么求呢? 因为有强制在线部分,所以不能直接把树建立出来. 那就用 LCT 吧. 时间复杂度 \(O(q(\log n + \alpha(n)))\).…
搞了一上午LCT,真是累死了-- 以前总觉得LCT高大上不好学不好打,今天打了几遍感觉还可以嘛= =反正现在的水平应付不太难的LCT题也够用了,就这样好了,接下来专心搞网络流. 话说以前一直YY不出来LCT怎么维护边权,多谢sxysxy告诉我要添虚点来把边权转化为点权,感激不尽-- 言归正传. [国家集训队2012]tree(伍一鸣) LCT模板题嘛-- 区间乘和区间加一遍写对,感觉费了好多rp-- #include<cstdio> #include<cstring> #inclu…
在SQL Server中,表之间存在引用关系,引用关系通过创建外键约束(Foreign Key Constraint)实现.如果一个Table中的column被其他Table引用,那么该表是参考表,或引用表(Referenced Table),该Column是其他表的外键列,也叫参考列,引用列(Referenced Column),对引用列执行Update 或 Delete 操作会受到很多限制.在对引用列进行Update 和 Delete之前,必须禁用外键约束. 1,查看FK的信息,使用 sys…
前几天,发现从库挂了,具体报错信息如下: 分析思路 1. 因为我采用的是选择性复制,只针对以下几个库进行复制: card,upay,deal,monitor,collect.所以,不太可能出现对于sas_basic的操作能复制到该从库上. 2. 整个架构是1主2从,且都是选择性复制,上面这个从库是直接复制card,upay,deal,monitor,collect这几个数据库的数据,而另外一个从库则是忽略上述库,如下所示: 怀疑是在上述schema下,执行了DROP TABLE IF EXIST…
在数据库里面使用TRUNCATE命令截断一个表的数据时,遇到如下错误 SQL >TRUNCATE TABLE ESCMOWNER.SUBX_ITEM ORA-02266: unique/primary keys in table referenced by enabled foreign keys 有时候对应的中文错误提示为:ORA-02266: 表中的唯一/主键被启用的外部关键字引用,一般出现这个错误,是因为表中的主键被其它表的外键所引用,导致删除数据时出错. 此时,你可以通过下面脚本查看一下…
=================================版权声明================================= 版权声明:原创文章 禁止转载  请通过右侧公告中的“联系邮箱(wlsandwho@foxmail.com)”联系我 勿用于学术性引用. 勿用于商业出版.商业印刷.商业引用以及其他商业用途. 本文不定期修正完善. 本文链接:http://www.cnblogs.com/wlsandwho/p/5126708.html 耻辱墙:http://www.cnblo…
动态树是一类要求维护森林的连通性的题的总称,这类问题要求维护某个点到根的某些数据,支持树的切分,合并,以及对子树的某些操作.其中解决这一问题的某些简化版(不包括对子树的操作)的基础数据结构就是LCT(link-cut tree). LCT的大体思想类似于树链剖分中的轻重链剖分(轻重链剖分请移步http://www.cnblogs.com/BLADEVIL/p/3479713.html),轻重链剖分是处理出重链来,由于重链的定义和树链剖分是处理静态树所限,重链不会变化,变化的只是重链上的边或点的权…
1.以下是直接从数据库导出的建表语句. 1 -- ---------------------------- 2 -- Table structure for files 3 -- ---------------------------- 4 DROP TABLE IF EXISTS `files`; 5 CREATE TABLE `files` ( 6 `id` int(11) NOT NULL, 7 `fileName` varchar(50) DEFAULT NULL, 8 `filePat…
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束.外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持):2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立: 3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以: 外键的好处:可以使得两张表关联,保证数据的一…
其实我连splay都还不怎么会. 今天先抄了黄学长的bzoj2049,以后一定要把它理解了. 写LCT怎么能不%数据结构大神yeweining呢?%%%chrysanthemums  %%%切掉大森林的全ZJ唯一一人 #include<cstdio> #include<algorithm> #define N 1000005 using namespace std; int n,m; ],c[][],f[][],st[];]; inline bool isroot(int x) {…
模板T,SB的DMoon..其实样例也是中国好样例...一开始不会复制,yangyang:找到“sample input”按住shift,按page down.... #include <iostream> #include <cstdio> #define inf 0x7fffffff #define N 20010 #define M 20010 using namespace std; int n,m; struct node *null; struct node { nod…
终于不是裸的LCT了...然而一开始一眼看上去这是kruskal..不对,题目要求1->n的路径上的每个点的两个最大权值和最小,这样便可以用LCT来维护一个最小生成路(瞎编的...),先以a为关键字排序,然后加边,所以每次加入一条边时a一定是最大的,考虑b的大小,当形成环时,考虑用当前边替换掉环内b最大的边,当然是当前边b小于权值最大的边拉! Tips:1.注意LCT要把每条边也作为一个节点,方便连接,然后每个节点维护所在边在边集里的编号即可. #include <iostream> #…
竟然卡了我....忘记在push_down先下传父亲的信息了....还有splay里for():卡了我10min,但是双倍经验还是挺爽的,什么都不用改. 感觉做的全是模板题,太水啦,不能这么水了... 不过模板都敲不对,啥也做不好!!! #include <iostream> #include <cstdio> #define N 300030 using namespace std; int n,m; struct node { node *fa,*ch[]; int data,…
1A爽,感觉又对指针重怀信心了呢= =,模板题,注意单点修改时splay就好,其实按吾本意是没写的也A了,不过应该加上能更好维护平衡性. ..还是得加上好= = #include <iostream> #include <cstdio> #define N 300010 using namespace std; int n,m; struct node { node *fa,*ch[]; int xor_sum,data; bool rev; node(int x); ];} ]…
SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主键. SQL PRIMARY KEY Constraint on CREATE TABLE 下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 PRIMARY KEY 约束: MySQL: CREATE TABLE Persons ( Id_P i…
MENU: Transactions > Financial > Revalue Open Currency Balances 使用频率: - 每个月月底,结账前, 手工操作. - 或者在Period Close Checklist会有一步需要操作:Revalue Open Foreign Currency Balances Note: - 页面Month End Currency Revaluation,每个Subsidiary都要做,在列表下面系统会列出所有等待有可能存在交易外币金额的科目…
在删除northwindcs表时,发生报错,消息 3726,级别 16,状态 1,第 2 行,无法删除对象 '产品',因为该对象正由一个 FOREIGN KEY 约束引用.此时判断是因为有其他表的外键引用了本表,导致无法删除.下面脚本可查询本表是由哪个表的哪个外键引用: SELECT FK.NAME,FK.OBJECT_ID,OBJECT_NAME(FK.PARENT_OBJECT_ID) AS REFERENCETABLENAME FROM SYS.FOREIGN_KEYS AS FK JOI…
出现这个异常的原因是因为设置了外键,造成无法更新或删除数据. 1.通过设置FOREIGN_KEY_CHECKS变量来避免这种情况 删除前设置 SET FOREIGN_KEY_CHECKS=0; 删除完成后 SET FOREIGN_KEY_CHECKS=1; 这样虽然可以解决异常问题,但是表连结问题依然存在,如删除了外键中的一行,其他包含该行的数据应该也对应删除才行. 2.外键的级联删除 如果父表中的记录被删除,则子表中对应的记录自动被删除. 父表--被外键引用的表 子表--引用父表中的键作为外键…
这道题目太神啦! 我们考虑他的每一次合并操作,为了维护两棵树合并后树的重心,我们只好一个一个的把节点加进去.那么这样一来看上去似乎就是一次操作O(nlogn),但是我们拥有数据结构的合并利器--启发式合并,那么我们就可以在均摊O(log2n)的时间内合并一颗树,这题就可以完美的AC啦! 什么,你问怎么维护重心?我们可以记录一个值sb表示子树的大小.怎么维护sb呢?我们可以采用打标记的方法,把新加入的节点到根的路径上的点的sb值都+1 对于维护答案,我们维护一个sm变量,来保存子树内所有节点到这个…
at sometime we usually need to create two tables that one table relate another.Such as a husband only have a wife. So how can I design relationship like this.In programming, The type of this relationship named “unidirectional one-to-one association”.…
ABP理论学习总目录 一步一步使用ABP框架搭建正式项目系列教程 ABP之Module-Zero学习目录 本篇目录 问题 原因 解决办法 问题 问题的是在下面这种情况下出现的: 我在使用CodeFirst更新了数据库后,然后数据库中产生数据表了,几个表中也都有数据.问题的主要原因是跟AbpUsers表有关的. 一开始AbpUsers表的数据是这样的: 我直接删除了AbpUsers表中的数据,然后想重新运行一下种子方法,结果再次生成了和之前一样的数据,但是由于Id是自增长的,Id分别变成了3和4.…