- 2024-10-09[ZJOI2008] 骑士
\(基环树DP\)https://www.luogu.com.cn/problem/P2607\(将基环树上面的环破开成树就能进行如同《没有上司的舞会》的树形DP\)\(没有上司的舞会:\)https://www.luogu.com.cn/problem/P1352\(具体实现困难之处在于如何破环成树,其实只需要主要到对于树上的一个环,将环上的两个节
- 2024-08-02[ZJOI2008] 瞭望塔
从题目给的图片可以得到一个提示,我们将某一个斜坡(不妨假设斜率为正)变成一条直线,那么如果我们瞭望塔建在了这条斜坡的右边,则瞭望塔的顶端一定要在这条直线的上方,否则的话就看不到这个斜坡。进一步地,假设我们已经确定了瞭望塔的位置,那么:在其左边的斜率为负的斜坡都能被看到,斜率为正
- 2023-10-15P2607 [ZJOI2008] 骑士
P2607[ZJOI2008]骑士[P2607ZJOI2008]骑士-洛谷|计算机科学教育新生态(luogu.com.cn)目录P2607[ZJOI2008]骑士题目大意思路code题目大意给你一个\(n\)个点,\(n\)条边的基环树森林。你可以从中选择若干个点,满足两两之间不存在边相连。每个点有一个权值,请问最大的
- 2023-07-19【题解】Luogu[P2607] [ZJOI2008] 骑士
题目说给定\(n\)个点\(n\)个关系,也就是\(n\)条边,显然是基环树,又因为没有规定一定连通,于是我们可以将题目简化为给定一个基环树森林,点有点权,相邻的两个点不能同时选,问最大点权和。part1我们先考虑如果没有环,只是树,该怎么做。这一部分很简单,令\(f_{i,0/1}\)表示以\(i\)
- 2023-06-23NC20477 [ZJOI2008]树的统计COUNT
题目链接题目题目描述一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作:I.CHANGEut:把结点u的权值改为tII.QMAXuv:询问从点u到点v的路径上的节点的最大权值III.QSUMuv:询问从点u到点v的路径上的节点
- 2023-05-14ZJOI2008 树的统计
这是一道比树链剖分板子还板子的题目。操作:我们将以下面的形式来要求你对这棵树完成一些操作:CHANGEut:把节点\(u\)权值改为\(t\);QMAXuv:询问点\(u\)到点\(v\)路径上的节点的最大权值;QSUMuv:询问点\(u\)到点\(v\)路径上的节点的权值和。注意:从点\(u\)
- 2023-03-10P2590 [ZJOI2008]树的统计
一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值W。我们将以下面的形式来要求你对这棵树完成一些操作:I.CHANGEut:把结点u的权值改为t。II.QMAXuv:
- 2023-03-06P2607 [ZJOI2008] 骑士
和<没有上司的舞会>一样,但树上多了条边 断掉环上一条边,两个点分别做dp,取max #include<iostream>#include<algorithm>usingnamespacestd;constintN=1e
- 2022-12-30ZJOI2008, 树的统计 树链剖分模板
//题意:给定一棵树,现在我需要询问以下操作//1.q,u之间的最小值//2.q,u之间的简单路径的权值和//3.修改树上q点的权值//思路:如果是在一段序列上的问
- 2022-11-23题解 LGP2607【[ZJOI2008] 骑士】
problem基环树森林带权最大独立集。\(n\leq10^6\)。solution0这里先解释一下基环树森林,它就是一个\(n\)个点\(n\)条边的森林,同时是一个荒漠。我们拿出其中一棵连
- 2022-11-22BZOJ1036-[ZJOI2008]树的统计Count&&POJ3237-Tree
为什么把这两题放在一起呢,因为这两题其实是一道题,只是输入顺序不一样。这里主要以BZOJ1036为例。1036:[ZJOI2008]树的统计CountTimeLimit: 10Sec MemoryLimit:
- 2022-11-16[ZJOI2008]骑士
P2607基环树板子题(虽然打了好久好久)题目大意是给你一n个人的能力值,在每个人都有一个死敌不能同时被选中的情况下,从中挑出一些人,问能力值最大是多少。首先,为什么会往基
- 2022-10-22P2607 [ZJOI2008] 骑士
#include<bits/stdc++.h>//#include<windows.h>usingnamespacestd;#definelllonglongconstintN=1e6+1;intn;inth[N],nt[N*2],to[N*2];intcnt;voidadd(i