题解 P3950 【部落冲突】】的更多相关文章

题目链接 https://www.luogu.org/problemnew/show/P3950 分析 大佬都用LCT,我太弱只会树链剖分 一个很裸的维护边权树链剖分题.按照套路,对于一条边\(<u,v>(dep(u)<dep(v))\),让它边权加1就在\(v\)点处+1,将边的问题转化为点的问题 然后对于C,U操作,线段树单点修改,Q操作区间查询 注意 询问\(u,v(dep(u)>dep(v))\)点之间是否联通区间查询时注意是查询\([u,son[v]]\)的和,忽然发现N…
题目链接 luogu P3950 部落冲突 题解 树剖线段树可以 lct还行 代码 #include<cstdio> #include<algorithm> inline int read() { int x = 0,f = 1; char c = getchar(); while(c < '0' || c > '9')c = getchar(); while(c <= '9' && c >= '0') x = x * 10 + c - '0…
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例1 输出样例1 输入样例2 输出样例2 输入样例3 输出样例3 说明 思路 AC代码 总结 题面 题目链接 P3950 部落冲突 题目描述 在一个叫做Travian的世界里,生活着各个大大小小的部落.其中最为强大的是罗马.高卢和日耳曼.他们之间为了争夺资源和土地,进行了无数次的战斗.期间诞生了众多家喻户晓的英雄人物,也留下了许多可歌可泣的动人故事. 其中,在大大小小的部落之间,会有一些道路相连,这些道路是Tr…
题目传送门 部落冲突 格式难调,体面就不放了. 分析: julao们应该都看得出来就是个$LCT$板子,战争就$cut$,结束就$link$,询问就$find$.没了... 太久没打$LCT$,然后发现自己之前貌似理解得并不透彻,打得还是不熟... Code: //It is made by HolseLee on 5th Sep 2018 //Luogu.org P3950 #include<cstdio> #include<cstring> #include<cstdli…
题目连接:https://www.luogu.org/problemnew/show/P3950 1.像我这种学数据结构学傻了的 2.边权化点权 所有点权初始化0 3.对于战争 将深度较深的-1,对于和平 将深度较深的+1 4.对于历史 用war记录 5.特别注意 在两个查询的LCA处判断是否为-1并且当前的整条路径上的点权也为-1时 同样是yes 代码: include include include include define lson left, mid, rt<<1 define r…
原题传送门 这题用Link-Cut-Tree解决,Link-Cut-Tree详解 我们用Link-Cut-Tree维护连通性(十分无脑) 一开始先把树中每条边的两端连接 U操作:把u,v两个点连起来 C操作:把u,v两个点分开来 Q操作:判断在这个森林里u的根和v的根是否相等(是否连通) #include <bits/stdc++.h> #define N 300005 #define getchar nc using namespace std; inline char nc(){ stat…
传送门 拿到题目,一看 裸LCT (其实是我懒得打,splay又臭又长) 首先,这道题的意思就是删掉一些边 所以常规操作 点权转边权 之后对于战争操作,在对应的边上+1 对于和平操作,在对应的边上-1 然后对于询问,即统计从$u$到$v$的路径上的和 如果和为$0$,即表明可以到,否则不能到 代码 #include<bits/stdc++.h> namespace my_std { using namespace std; #define rep(i,a,b) for (int i=(a);i…
题目背景 在一个叫做Travian的世界里,生活着各个大大小小的部落.其中最为强大的是罗马.高卢和日耳曼.他们之间为了争夺资源和土地,进行了无数次的战斗.期间诞生了众多家喻户晓的英雄人物,也留下了许多可歌可泣的动人故事. 其中,在大大小小的部落之间,会有一些道路相连,这些道路是Travian世界里的重要枢纽,简单起见,你可以把这些部落与部落之间相连的道路看作一颗树,可见每条道路对于Travian世界的重要程度.有了这些道路,建筑工人就可以通过这些道路进行友好外交啦. 然而,事情并不会像想象的那样…
题目背景 在一个叫做Travian的世界里,生活着各个大大小小的部落.其中最为强大的是罗马.高卢和日耳曼.他们之间为了争夺资源和土地,进行了无数次的战斗.期间诞生了众多家喻户晓的英雄人物,也留下了许多可歌可泣的动人故事. 其中,在大大小小的部落之间,会有一些道路相连,这些道路是Travian世界里的重要枢纽,简单起见,你可以把这些部落与部落之间相连的道路看作一颗树,可见每条道路对于Travian世界的重要程度.有了这些道路,建筑工人就可以通过这些道路进行友好外交啦. 然而,事情并不会像想象的那样…
洛谷题目传送门 最无脑LCT题解,Dalao们的各种算法都比这个好多啦... 唯一的好处就是只管码代码就好了 开战cut,停战link,询问findroot判连通性 太无脑,应该不用打注释了.常数大就不用说了(逃 #include<cstdio> #include<cstdlib> #define R register int #define I inline void #define lc c[x][0] #define rc c[x][1] #define G ch=getch…
题目大意:给你一棵树,有$3$个操作: $Q\;p\;q:$询问$p,q$是否连通 $C\;p\;q:$把$p->q$这条边割断 $U\;x:$恢复第$x$次操作二 题解:可以在割断时把这条边赋值上$1$,恢复时赋成$0$,只需要求$p->q$路径和是否为$0$即可,可以用$dfs$序+树状数组维护 卡点:$LCA$越界 C++ Code: #include <cstdio> #include <cctype> #include <algorithm> na…
题面 \(Solution:\) 法一:LCT裸题 又好想又好码,只不过常数太大. 法二:树链剖分 每次断边将该边权的值++,连边--,然后边权化点权(给儿子),询问就查询从x到y的路径上的边权和,树状数组套树链剖分维护. \(Source\) // luogu-judger-enable-o2 #include <stdio.h> #include <vector> #include <assert.h> #include <ctype.h> #inclu…
题目链接 状态奇差无比,sbt都能错一遍. 不动笔光想没有想到怎么做,画图之后发现一个很明显的性质…… 那就是两个开战的部落,其中一个是另一个的父亲. 所以在儿子那里加个权值.查询的时候树链剖分查询链上点权和,减去lca的点权(因为lca那如果有点权,代表的是lca和lca的父亲之间的那条边). #include<cstdio> #include<algorithm> #include<cctype> #include<cstring> #include&l…
原题地址:https://www.luogu.org/problemnew/show/P3950 题目简述 给定一棵树,每次给定一个操作,有如下两种: 将某条边染黑 2.询问给定的u,v两点间是否有边被染黑 思路 询问两点间是否有边被染黑只需要在求LCA时判一下就行.所以直接上树链剖分即可. 本题不需要使用线段树,使用树状数组查询路径上是否有任意一段区间和不为0即可. 代码 #include <bits/stdc++.h> #define lowbit(x) x&-x using na…
嘟嘟嘟 树剖板子题. #include<cstdio> #include<iostream> #include<algorithm> #include<cmath> #include<cstring> #include<cstdlib> #include<cctype> #include<stack> #include<queue> #include<vector> using name…
题目背景 在一个叫做Travian的世界里,生活着各个大大小小的部落.其中最为强大的是罗马.高卢和日耳曼.他们之间为了争夺资源和土地,进行了无数次的战斗.期间诞生了众多家喻户晓的英雄人物,也留下了许多可歌可泣的动人故事. 其中,在大大小小的部落之间,会有一些道路相连,这些道路是Travian世界里的重要枢纽,简单起见,你可以把这些部落与部落之间相连的道路看作一颗树,可见每条道路对于Travian世界的重要程度.有了这些道路,建筑工人就可以通过这些道路进行友好外交啦. 然而,事情并不会像想象的那样…
前提申请两个谷歌账号,账号一和账号二,想要切换账号,只需清除部落冲突在手机上的数据即可.详情请看下文! 1. 第一次登陆,进入游戏后 2. 没有谷歌商店的童鞋,下载谷歌安装器(一键修复)以及VPNFQ软件 3. 通过Google Play,自动搜索你的谷歌账号 选择账号一,点击确定 4. 首领,我等候您多时了!人家好寂寞,哈哈~ 退出游戏,准备切换账号二 5. 打开手机设置(大师的手机是魅族MX2,刷机刷到Flyme OS 4.2.8) 6. 进入应用管理,找到部落冲突 点击清除数据,放心点(注…
零.前言 部落冲突(Clash of Clans)是手机上一个很不错的联机对战游戏,安卓和iOS平台上都有. 最近玩这个略上瘾,前几天看到部落里有人说用模拟器可以在电脑上玩,就想自己试试. 不想看我啰嗦的直接跳到“三.流程总结”吧. 一.第一次尝试 部落里的哥们推荐的是bluestacks,一个很不错的安卓模拟器,Mac OS和Windows平台都支持.由于我用的是Mac,必须下Mac OS版. 很不幸的是,直接打开bluestacks的话默认是中文版,只有Windows版的下载地址,研究了一下…
2856. [洛谷U14475]部落冲突 ★★★   输入文件:lct.in   输出文件:lct.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 在一个叫做Travian的世界里,生活着各个大大小小的部落.其中最为强大的是罗马.高卢和日耳曼.他们之间为了争夺资源和土地,进行了无数次的战斗.期间诞生了众多家喻户晓的英雄人物,也留下了许多可歌可泣的动人故事. 其中,在大大小小的部落之间,会有一些道路相连,这些道路是Travian世界里的重要枢纽,简单起见,你可以把这…
树链剖分吼啊 一看就看出是LCT模板题啦 前记 见这么多人写LCT,却很少人写树链剖分,于是我就来一发树链剖分(其实是因为自己不会LCT) 本蒟蒻的写法和诸位写树链剖分的大神有点不同 思路 树链剖分,简单题 操作 操作1:'C' 操作 : 简单的说就是把x到y的边cut掉,题目又保证x,y相邻,肯定直接LCT啦,那么我们就可以将x,y的所以边权加1,表示那些边多了一次战争. 操作2:'U' 操作 : 简单的说就是把之前cut的边加回来,我们只需要记录之前每一次战争的两个部落编号,战争结束就把那两…
题目背景 在一个叫做Travian的世界里,生活着各个大大小小的部落.其中最为强大的是罗马.高卢和日耳曼.他们之间为了争夺资源和土地,进行了无数次的战斗.期间诞生了众多家喻户晓的英雄人物,也留下了许多可歌可泣的动人故事. 其中,在大大小小的部落之间,会有一些道路相连,这些道路是Travian世界里的重要枢纽,简单起见,你可以把这些部落与部落之间相连的道路看作一颗树,可见每条道路对于Travian世界的重要程度.有了这些道路,建筑工人就可以通过这些道路进行友好外交啦. 然而,事情并不会像想象的那样…
传送门 首先肯定考虑树剖,这里没有要求区间加,所以可以用树状数组维护,不会卡常的 这里是边权,可以转化为点权:让每条边连接的较深的节点的点权等于边权即可,然后计算的时候减去lca #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #define MAXN 300005 #define LOG 20 using namespace std; int read(){…
点此看题面 大致题意: 给你一棵树,\(3\)种操作:连一条边,删一条边,询问两点是否联通. \(LCT\)维护连通性 有一道类似的题目:[BZOJ2049][SDOI2008] Cave 洞穴勘测. 这两道题都是\(LCT\)动态维护连通性的模板题. 考虑将\(x\)和\(y\)连边时,我们就在\(LCT\)上\(Link(x,y)\). 同理,\(x\)和\(y\)断边时,就\(Cut(x,y)\). 询问连通性时,只要判断\(FindRoot(x)\)与\(FindRoot(y)\)是否相…
有了LCT这不就是思博题了吗 #include <bits/stdc++.h> using namespace std; const int N = 1000000; int n,m,t1,t2,t3; char op[5]; struct LinkCutTree { int top, q[N], ch[N][2], fa[N], rev[N]; inline void pushup(int x) { } inline void pushdown(int x) { if(!rev[x]) re…
为了优化体验(其实是强迫症),蒟蒻把总结拆成了两篇,方便不同学习阶段的Dalao们切换. LCT总结--概念篇戳这里 题单 灰常感谢XZY巨佬提供的强力资磁!(可参考XZY巨佬的博客总结) 题单对于系统地学习一个知识点还是有好处的. 所以蒟蒻搜集了各处的LCT题目(其实作为近年新兴的知识点,现有的好题不是很多,有些题树剖也可做) 大概按细化分类进行整理(类比下面的几个细化知识点,会有重复的列举) 同一类中的题目也大概按难度递增吧(太弱了,对每个题的难度定位或许有不准的地方,欢迎讨论!) 维护链信…
这是一篇关于LCT的总结 加删边的好朋友--Link Cut Tree Link-Cut Tree,LCT的全称 可以说是从树剖引出的问题 树剖可以解决静态的修改或查询树的链上信息:那如果图会不断改变,怎么办? 然后就有了LCT(真不知道发明它和它的那些拓展用法的人是怎么想出来的,创造力真强) LCT要做的就是在不断的加边.删边等等改变图的操作中维护树的信息 不得不说,它很强大 本篇随笔只是记录一下自己对使用LCT的心得,如果你想从头开始学习LCT,可以去这里-- LCT总结+题单+洛谷P369…
LCT题单(自己的做题情况反馈)(转自Flash) 随时进Flash Hu的LCT看一发 也可以看一下我自己的风格的板子 开始 维护链信息(LCT上的平衡树操作) [X] 洛谷P3690 [模板]Link Cut Tree https://www.luogu.org/problemnew/show/P3690 [ ] 洛谷SP913 QTREE2 - Query on a tree II https://www.luogu.org/problemnew/show/SP913 [X] 洛谷P320…
https://www.patest.cn/contests/gplt/L2-024 题解:部落是并查集模板题. 社交集群用并查集暴力有23分 坑:写了半天,发现自己并查集没怎么学明白,现在才搞懂: find :return f[x]=find(f[x]); 询问:if(find(x)==find(y)) 合并:xx=find(x),yy=find(y);f[xx]=yy; #include<iostream> #include<algorithm> #include<std…
本篇博客的题单转载自FlashHu大佬的博客:LCT总结--应用篇(附题单)(LCT). 关于\(LCT\)可以查看这篇博客:\(LCT\)入门. 这里面有些题解的链接是空链接,尚未补全. 维护链信息 [已\(AC\)][洛谷3690][模板]Link Cut Tree(\(LCT\)入门) [已\(AC\)][洛谷3203][HNOI2010] 弹飞绵羊(分块题解) [已\(AC\)][洛谷1501][国家集训队] Tree II(题解) [已\(AC\)][洛谷2486][SDOI2011]…
在腾讯市值超越阿里巴巴后,市场分析多数认为,当年的BAT“三巨头”时代已经彻底结束,进入了“双寡头”时代了 从对外投资来看,BAT不同的投资逻辑可以推测其战略方向 撰文/梁云风 时评员,关注财经与互联网创业 8月17日,腾讯公司公布第二季度财报后,股价连续冲高,市值达到2490亿美元,超越市值2460亿美元的阿里巴巴,成为中国市值最高的科技公司.于是乎,中国互联网三巨头的排名由“BAT”彻底反转为“TAB”. 通过财报和投资的对比,将为我们还原一个怎样的BAT? 观财报:“三巨头”还是“双寡头”…