• 2024-12-22【内向基环树】LeetCode 2127. 参加会议的最多员工数
    题目https://leetcode.cn/problems/maximum-employees-to-be-invited-to-a-meeting/description/题解从\(i\)向\(favorite[i]\)连边,会形成一张\(n\)个点\(n\)条边的有向图,且该图包含若干个连通块,每个连通块均为基环树,亦即该有向图为基环树森林。以测试用例[1,2,0],进
  • 2024-12-18【内向基环树】codeforces 2044 G1. Medium Demon Problem (easy version)
    前言基环树,又名环套树,是具有\(n\)个节点和\(n\)条边的图,比树多出现一个环。基环树也根据边的有向和无向分为了有向基环树和无向基环树。有向基环树又可以分为内向基环树和外向基环树。对于有向基环树,若基环树的每个节点的出度均为\(1\),则称为内向基环树;若基环树的每个节点的
  • 2024-12-18【内向基环树】LeetCode 2360. 图中的最长环
    题解内向基环树的一个基本特征就是总共有\(n\)个节点和\(n\)条边,且每个节点的出度至多为\(1\),因此本题符合内向基环树的特征。先使用拓扑排序,标记全部的简单环外的节点,剩余的节点就必定是环上的节点。参考代码classSolution{public:intlongestCycle(vector<int>
  • 2024-11-24基环树和笛卡尔树总结
    一个图论,一个半数据结构。咱也不知道为啥这两个毫无关联的东西会放在一块。基环树(环套树)一些定义基环树:一张有\(N\)个点和\(N\)条边的图,如果不保证连通的话,那么整张图是一张基环树森林。并且如果将环上的任意一条边去除,那么整棵基环树会成为一棵普通的树。内向树:一棵所
  • 2024-11-23[lnsyoj1469/luoguP4644] Cleaning Shifts
    题意原题链接给定\(n\)个区间\([a_i,b_i]\),第\(i\)个区间拥有权值\(S_i\),求使用这些区间将区间\([M,E]\)(包含所有\(n\)个区间)完全覆盖(两端点不需要重合)所需区间的权值最小值。sol一道板子题,本来是数据结构优化DP,但是被最短路薄纱了。考虑将每一个时间点视作一个节
  • 2024-09-192024.9.18 LGJ Round
    C\(n\timesm\)个人,选择某人的代价是\(a_{i,j}\),可以使其负责其所在的行/列,问使得所有行列被负责最小代价。\(nm\le10^5\)。若选择\(a_{i,j}\),看做是第\(i\)行跟第\(j\)列连了一条有向边,你发现最后图的形式是一个基环树森林。但是边是有向的,不难发现如果我们确定了基
  • 2024-09-01学习笔记 ---- 基环树
    目录算法解析基环树与基环森林模板例题[NOIP2018提高组]旅行[ZJOI2008]骑士[IOI2008]IslandLongWaytobeNon-decreasing算法解析基环树与基环森林基环树是指有且仅有一个环的树。基环森林是指若干棵基环树构成的森林。对于有向图,基环树可分为内向基环树和外向基环
  • 2024-08-18AtCoder Beginner Contest 367 题解(E~G)
    E转换关系看作有向边,\(n\)点\(n\)边构成基环树森林,基环树森林k后继唯一,记f[i][j]为点\(i\)的\(2^j\)级祖先,随便倍增。F一眼哈希,不知道有没有不哈希的做法。在这里我们不关心元素的顺序,只关心元素是否出现以及出现几次,考虑一个\(n\)位\(n+1\)进制数,\(a_i\)出现一
  • 2024-08-05【笔记】非传统题选讲 2024.8.5
    今天睡着了。发了只是为了完整性。[CF1672E]notepad.exe先二分得到总长度\(\suml_i+n-1\)记为\(w_1\),然后考虑其它行数\(h\),最优的情况只能是每一行都用换行顶替一个空格,此时面积为\(w_h\cdoth=w_1-h+1\),所以\(w_h=\left\lfloorw_1/h\right\rfloor\)为唯一可能更新答
  • 2024-07-24[Tkey] Transport Nekomusume II
    CL-20考虑定义一条有向边\(u\rightarrowv\)的意义为\(u\)把窝让给了\(v\),那么每个点一定入度为\(1\),所有的边会形成一个外向基环树森林。贪心地把猫娘按照权值从大到小排序,每个猫娘看成一条无向边,那么可行的方案一定会形成一个基环树森林。用并查集维护所有窝组成的基环
  • 2024-07-21基环树
    定义(图片来自这篇文章)基环树:有\(n\)个点\(n\)条边的连通图外向树:每个点出度为\(1\)内向树:每个点入度为\(1\)找环\(dfs\)拓扑排序一般处理方法因题而异,一般有两种常用的第一种是先断掉环边,把环上点当作根,处理每一棵子树,再在环上处理,可能需要
  • 2024-07-13Koxia and Game
    这道题目就看官方解答吧本来这道题目是构造题,但是题目要求计数,计数肯定就很多了,所以我们不能像传统构造题一样,去想如何特殊地构造出一个序列来,这里就要去想满足条件的序列有什么共性,所以我们就假设已经找到了序列\(c\),然后去想想Koxia怎么必胜于是不难发现引理一(这个可以感性理
  • 2024-06-23基环树和笛卡尔树
    基环树就是比平常的树多一条边,有\(n\)条边,也就有一个环在里面。基本思想就是断环,跑树形\(dp\),或者用拓扑排序判环去跑环形\(dp\)。树的直径今天才了解到的,用两遍\(dfs\)跑。首先第一遍找到离根节点最远的节点\(u_1\),然后再从\(u_1\)找到离它最远的节点\(u_2\),那么
  • 2024-06-13基环树和笛卡尔树
    1.基环树定义:有\(n\)个点和\(n\)条边的图,就是给树连了一条边,此时图中恰好只有一个环解决这类问题时,通常断环,变成普通的树的问题,然后再特殊处理环P2607[ZJOI2008]骑士click断环成树后就跟没上司一样是个树形dp,注意森林,longlong就行了,具体细节见这里P5022[NOIP2018提高组
  • 2024-06-11基环树
    基环树1.定义基环树是一个由n个点及n条边组成的连通图,其比树多出一条边,所以称作基环树。2.分类基环树分为无向基环树和有向基环树。而有向基环树又分为内向基环树和外向基环树。内向基环树,即每个点出度为1的基环树;外向基环树,即每个点入度为1的基环树。3.解决方式对于有关
  • 2024-06-11基环树
    基环树的定义为:一个有向或无向图中,只含有一个环的图,形式化的表达为:关于这种形状关键点主要在于找环,那么我们可以一步一步的去寻找,当这个点走着走着走到了某个环里,我们可以直接遍历整个环,然后打个标记,这样环就找到了具体的例题:E-ReachabilityinFunctionalGraph本题就是一
  • 2024-05-29基环树找环
    abc167_dTeleporter#include<bits/stdc++.h>#defineptprintf(">>>")#definemid(((l)+(r))/2)usingnamespacestd;typedeflonglongll;typedeflongdoubleld;constllN=1e6+10,inf=1e18+10,mod=1e9+7;vector<ll>G[N];map&