随笔分类 -  题解集

摘要:题意简述 每组数据给定一个无序数列,数列中每个数都有一个实时的状态,初始为1。你可以对该数列进行任意次操作,每次操作可以选择数列中任意两个相邻的数进行交换。对于任意一个数,每被交换一次其状态便会被取反。询问对数列进行操作后能否使其变为单调不下降序列,并且最终每个数的状态均为1。 算法概述 容易发现, 阅读全文
posted @ 2021-07-12 14:47 魑吻丶殇之玖梦 阅读(91) 评论(0) 推荐(0)
摘要:前言 看这道题不爽很久了,但一直没有开它,原因是我不会~~(我太菜了)~~,看了题解还是写不来,因为我不会线段树合并。 然后今天学了dsu on tree这种神奇的科技,成功把它A了,效率吊打线段树合并。 于是写篇题解纪念一下。 题目链接 洛谷P1600 天天爱跑步 算法概述 不带修改的树上路径信息 阅读全文
posted @ 2020-11-03 10:50 魑吻丶殇之玖梦 阅读(196) 评论(0) 推荐(0)
摘要:[CQOI2017] 小Q的棋盘 题目链接:洛谷P3698 题意简述 给定一棵树,点数为n,从根节点出发,每一步可以走向与当前点有直接边相连的点,问走m步最多能经过多少个点。边和点均可以重复经过,但不重复计数。 算法概述 \(f[p][j]\) 表示从 \(p\) 出发走向以 \(p\) 为根的子树 阅读全文
posted @ 2020-10-27 07:52 魑吻丶殇之玖梦 阅读(87) 评论(0) 推荐(0)
摘要:题意简述 给定 \(n(n<=50)\) 个长度不超过 \(l(l<=5000)\) 的序列,以及一个长度为 \(m(m<=250000)\) 的索引序列,每个索引表示某一序列的编号,然后按照这 \(m\) 个索引的顺序,将小序列组成一个大序列,求这个大序列的最大子段和。 算法概述 首先看到数据范围 阅读全文
posted @ 2020-10-24 14:43 魑吻丶殇之玖梦 阅读(130) 评论(0) 推荐(0)
摘要:题意简述 题目链接 给定一n个点、m条边的森林,q次操作,操作分两种:1.给定一个点x,要求x所在的树的直径;2.给定两个点x,y,选取x所在树中的一个点u,y所在树中的一个点v,新增一条边(u,v),合并两棵树,使得合并后的新树的直径最小。 算法概述 对于初始的森林,显然可以dp一遍求出所有树的原 阅读全文
posted @ 2020-10-05 12:27 魑吻丶殇之玖梦 阅读(295) 评论(0) 推荐(0)
摘要:题外话 这道题…… 一道黄题。 一道简单的思维题。 题意简述 题目链接 有一个量,初始为m,每单位时间可将其+1或-1或不变。现有n个三元组(t,l,r),要求且仅要求在t时刻该量的值需要在区间[l,r]内,问是否能满足这n个三元组的要求。 算法概述 数据中n个三元组都是按t的顺序给出的,所以无需我 阅读全文
posted @ 2020-08-21 14:22 魑吻丶殇之玖梦 阅读(229) 评论(0) 推荐(0)
摘要:题意简述 题目链接 给定一棵无根树,要求回答m次询问,每次询问给定两个点u,v,求树上与这两个点距离相等的点的个数。距离定义为树上两点间的边数。 算法概述 这道题难度评定成紫色着实有点过了,个人感觉封顶蓝色。毕竟前置知识只有一个树上倍增,而且也没什么思维难度,就简单分类讨论一下就完事了。 手动画一画 阅读全文
posted @ 2020-08-21 08:57 魑吻丶殇之玖梦 阅读(169) 评论(0) 推荐(0)
摘要:题意简述 题目链接 给定一张n个点m条边的无向图,满足m-n<=20,然后进行q次操作,每次给定两个点,询问两点间最短路。 数据范围:1<=n,m,q<=105。 算法概述 只看题面显然是个裸的全源最短路,但是再看数据范围……显然不是全源最短路。 所以这时候就需要发挥我们的聪明才智,在题目中找一些特 阅读全文
posted @ 2020-08-18 09:28 魑吻丶殇之玖梦 阅读(218) 评论(0) 推荐(0)
摘要:此题为本人在Codeforces上独立AC的第一道洛谷紫色难度的题目,极具纪念意义,特此发布题解。 题意简述 题目链接 给定一棵无边权的树,初始点权均为0,保证除根节点外其余节点的度数不超过2。执行m次操作,每次操作为以下两种操作之一:(1)0 u x d 将距离节点u不超过d的点的权值加上x;(2 阅读全文
posted @ 2020-08-17 19:28 魑吻丶殇之玖梦 阅读(272) 评论(0) 推荐(0)
摘要:题意简述 题目链接 给定一棵有根树,每次给定k个节点,询问是否存在一条以根节点为一端的链,使得这k个节点到这条链的距离均<=1(只需判断可行性,无需给出方案)。 算法概述 思维题一般都需要我们分析出一些题目的性质。 这道题最特殊的点显然在于其要求的距离小于等于1,也就是说,这k个点要么在链上,要么在 阅读全文
posted @ 2020-08-13 21:43 魑吻丶殇之玖梦 阅读(187) 评论(0) 推荐(0)
摘要:题意简述 题目链接 给定一棵无根树,每个节点要么是黑点要么是白点,要求对于每个节点u,选出包含u的一个连通子图,使cnt1-cnt2最大化,其中cnt1为该连通子图内白点数,cnt2为连通子图内黑点数。 算法概述 记每个节点的权值w[u]为1或-1,1表示该点为白点,-1表示该点为黑点。 定义dp[ 阅读全文
posted @ 2020-08-06 16:11 魑吻丶殇之玖梦 阅读(193) 评论(0) 推荐(0)
摘要:题意简述 题目链接 给定一张n个点的有向图,一个长度为m的点号序列,表示图中一条路径(不保证是简单路径),要求选出其一个子序列,使得原序列是依次经过该子序列中所有点的一条最短路径,最小化子序列长度并输出该子序列。 算法概述 把原序列变成子序列,要使子序列长度最小化,则对于原序列中的点,当然是能删就删 阅读全文
posted @ 2020-08-06 15:11 魑吻丶殇之玖梦 阅读(157) 评论(0) 推荐(0)
摘要:前言 一道挺好的思维题。 本人蒟蒻一枚,这题是本人独立A掉的第一道洛谷蓝色难度的CF思维题,极具纪念意义。故本人会将思考过程尽量全面地记录下来,以观察思考的不足之处。 题意简述 题目链接 给定一棵树,初始时全为白点,要求按以下方法进行n次染色操作: 1.第一次可以任意选择一个节点染成黑色。 2.以后 阅读全文
posted @ 2020-08-05 19:42 魑吻丶殇之玖梦 阅读(173) 评论(0) 推荐(0)
摘要:题意简述 题目链接 给定一棵边权均为1的树,m个询问,每次给出五个参数x,y,a,b,k,其中x≠y,连一条新的无向边(x,y),询问a,b两点间是否存在一条长度为k的路径,路径可以重复经过某些点或某些边。 算法概述 这道题与加工零件有异曲同工之处。区别在于本题是在树上连新边后询问,而后者是在图上直 阅读全文
posted @ 2020-08-05 08:50 魑吻丶殇之玖梦 阅读(157) 评论(0) 推荐(0)
摘要:一道挺好的思维题。 题意简述 题目链接 给定一张边权均为1无向图,共Q次询问,每次给出两个参数a,L,询问1号点到a号点之间是否存在长度为L的路径,其中边和点可以经过多次。 算法概述 将1号点到每个点之间的路径长度设为dis,则对于每个询问,若L<min(dis[a]),显然无解。 当L>=min( 阅读全文
posted @ 2020-08-05 08:31 魑吻丶殇之玖梦 阅读(482) 评论(0) 推荐(0)
摘要:题意简述 题目链接 给定一棵树,每个节点有一个权值k,表示该节点有多少个海狸,从根节点出发,每吃一个海狸便能够且必须跳到与当前节点有直接边相连的节点上,要求最终跳回根节点,求最多能吃多少个海狸。 算法概述 考虑每个节点产生的贡献。 首先明确一点:每个节点产生的贡献与且只与其儿子节点有关。 先dfs递 阅读全文
posted @ 2020-08-03 17:04 魑吻丶殇之玖梦 阅读(181) 评论(0) 推荐(1)
摘要:题意简述 题目链接 给定一张无向图和两个权值G、S,图中每条边有两个权值au,ag,求一棵生成树,设树边中最大的权值au为A,最大的权值ag为B,需使下式最小化:G*A+S*B。 算法概述 【暴力】 该题要求一棵特殊的最小生成树,显然Kruskal无法直接求出有二维权值限制的最小生成树,所以我们考虑 阅读全文
posted @ 2020-08-03 15:36 魑吻丶殇之玖梦 阅读(160) 评论(0) 推荐(1)
摘要:原题链接 原题链接 算法介绍 整道题可以分成两部分来看。 对于仅有一行的部分: 整个矩阵退化为一个序列,整个问题就变成一个序列上的问题。 简化题意:给定一个序列,每次询问在一段区间内取若干个数,其总和是否能够大于一个给定值。 考虑如下做法: 对于每次询问,二分一个权值t,判断区间内权值大于等于t的所 阅读全文
posted @ 2020-06-04 19:29 魑吻丶殇之玖梦 阅读(146) 评论(0) 推荐(1)
摘要:静态区间第k小数 原题链接 算法概述 我们在“值域”上建立线段树。每个节点维护一段值域区间[L,R],并记录序列中数值落在这段值域区间[L,R]内的点有多少个,记为cnt。 先不考虑下标区间[l,r]的限制。对于询问整个序列A1~An中的第k小数,我们执行线段树的查询操作,对于每个线段树上的节点,只 阅读全文
posted @ 2020-05-19 16:30 魑吻丶殇之玖梦 阅读(361) 评论(0) 推荐(1)
摘要:原题链接 原题链接 算法概述 读完题目,显然可以用主席树做。 把所有的插入与撤销操作看成一个序列,按其操作顺序编号,则下标最多为1~n(因为有查询操作的存在,下标实际上不可能到n)。 在下标上建立主席树。 每个节点记录其所代表的下标区间内已经插入的字母个数。特别地,叶子节点需要额外记录其下标所对应的 阅读全文
posted @ 2020-05-14 21:30 魑吻丶殇之玖梦 阅读(258) 评论(0) 推荐(2)