Cogs 2856. [洛谷U14475]部落冲突】的更多相关文章

2856. [洛谷U14475]部落冲突 ★★★   输入文件:lct.in   输出文件:lct.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 在一个叫做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…
题目传送门 部落冲突 格式难调,体面就不放了. 分析: 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…
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例1 输出样例1 输入样例2 输出样例2 输入样例3 输出样例3 说明 思路 AC代码 总结 题面 题目链接 P3950 部落冲突 题目描述 在一个叫做Travian的世界里,生活着各个大大小小的部落.其中最为强大的是罗马.高卢和日耳曼.他们之间为了争夺资源和土地,进行了无数次的战斗.期间诞生了众多家喻户晓的英雄人物,也留下了许多可歌可泣的动人故事. 其中,在大大小小的部落之间,会有一些道路相连,这些道路是Tr…
题目背景 在一个叫做Travian的世界里,生活着各个大大小小的部落.其中最为强大的是罗马.高卢和日耳曼.他们之间为了争夺资源和土地,进行了无数次的战斗.期间诞生了众多家喻户晓的英雄人物,也留下了许多可歌可泣的动人故事. 其中,在大大小小的部落之间,会有一些道路相连,这些道路是Travian世界里的重要枢纽,简单起见,你可以把这些部落与部落之间相连的道路看作一颗树,可见每条道路对于Travian世界的重要程度.有了这些道路,建筑工人就可以通过这些道路进行友好外交啦. 然而,事情并不会像想象的那样…
题目大意:给你一棵树,有$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…
原题地址:https://www.luogu.org/problemnew/show/P3950 题目简述 给定一棵树,每次给定一个操作,有如下两种: 将某条边染黑 2.询问给定的u,v两点间是否有边被染黑 思路 询问两点间是否有边被染黑只需要在求LCA时判一下就行.所以直接上树链剖分即可. 本题不需要使用线段树,使用树状数组查询路径上是否有任意一段区间和不为0即可. 代码 #include <bits/stdc++.h> #define lowbit(x) x&-x using na…
传送门 拿到题目,一看 裸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…
题目描述 原始部落byteland中的居民们为了争夺有限的资源,经常发生冲突.几乎每个居民都有他的仇敌.部落酋长为了组织一支保卫部落的队伍,希望从部落的居民中选出最多的居民入伍,并保证队伍中任何2 个人都不是仇敌. 给定byteland部落中居民间的仇敌关系,编程计算组成部落卫队的最佳方案. 输入输出格式 输入格式: 第1行有2个正整数n和m,表示byteland部落中有n个居民,居民间有m个仇敌关系.居民编号为1,2,…,n.接下来的m行中,每行有2个正整数u和v,表示居民u与居民v是仇敌.…