上一页 1 2 3 4 5 6 7 8 9 ··· 39 下一页
摘要: 题目大意:给定一个 N 个点的有向图,计数图上哈密顿回路的条数。 题解:哈密顿回路需要经过除了初始位置,每个点恰好一次。如果已知一条哈密顿回路的方向,那么从这条路上任意一个点出发,得到的都是同样的结果。因此,不妨设从 0 号节点出发,最后回到 0 号节点。统计答案只需要枚举最后一个点在哪个位置即可。 阅读全文
posted @ 2019-06-24 15:54 shellpicker 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定 N 个三元组 (a,b,c),现有 M 个询问,每个询问给定一个三元组 (a',b',c'),求满足 a using namespace std; const int maxn=2e5+10; int n,m,ans[maxn 1]; int d[maxn],tot; struct 阅读全文
posted @ 2019-06-24 10:18 shellpicker 阅读(328) 评论(1) 推荐(0) 编辑
摘要: 题目大意:给定一个长度为 N 的序列,以及 M 个区间,现从中选出 K 个区间,使得这些区间的交集区间的点权和最大,求最大值是多少。 题解: 发现直接选 K 个区间不可做,考虑从答案入手。设答案区间为 [l,r],进行枚举答案区间的左端点。当前枚举到的左端点设为 L,那么能够以 L 作为左端点的区间 阅读全文
posted @ 2019-06-23 20:11 shellpicker 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个长度为 N 的序列,每个位置有一个权值,现要求重新排列这个序列,使得相邻的权值差的绝对值大于 K,求合法排列的方案数。 题解: 由于 N 很小,应该可以想到状压,考虑如何进行设计状态。首先肯定要一个集合 S,其中第 i 项为 0 表示未被加入当前集合中,1 表示加入了当前的集合中。 阅读全文
posted @ 2019-06-18 19:45 shellpicker 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 长链剖分适合维护与树深度有关的信息,与树链剖分中重儿子用 size 来决定不同,长链剖分中的重儿子的定义是以儿子为根的子树中深度最大的那个。 这样剖分有以下几条性质: 1. 每个节点属于且仅属于一条长链。 2. 所有长链的节点和为 N。 3. 若一个节点的 K 级祖先如果存在,那么其祖先所在的长链长 阅读全文
posted @ 2019-06-18 15:19 shellpicker 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个长度为 N 的序列,现可以进行若干次区间 +1 或区间 1 操作,求使得序列所有的值均相同的最小操作数是多少,且最终得到的序列有多少种。 题解: 首先考虑执行区间+和区间 操作,可以看成在差分数组上执行单点+1和单点 1操作,即:对于差分数组的一个正值和一个负值可以通过一次操作来修 阅读全文
posted @ 2019-06-17 22:00 shellpicker 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个 N\ M 的矩阵,定义一个矩形区域为一个“国旗”,满足:矩形区域可以按行划分成三个高度相同的部分,其中每一个部分中的颜色完全相同,第一部分的颜色与第二部分颜色不同,第二部分的颜色和第三部分的颜色不同。求给定的矩阵中有多少个不同的国旗,位置不同即为不同。 题解: 首先定义一个数组 阅读全文
posted @ 2019-06-17 15:45 shellpicker 阅读(492) 评论(0) 推荐(1) 编辑
摘要: 题目大意:给定 M 个城市,每年会选出一个城市举办比赛,现给出前 N 年城市举办比赛的情况。在接下来的年份中,每年会在举办比赛次数最小的城市举办比赛,如果有很多城市举办次数均为最小值,则在编号最小的城市举办比赛。现给出 Q 个询问,每次询问第 K 年在哪个城市举办比赛。 题解: 首先,记录下每个城市 阅读全文
posted @ 2019-06-17 14:36 shellpicker 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 1~n 标号的树。Tree[L,R]表示最少需要选择的边的数量使得 L~R 号点两两连通。求: $$ \sum_{L=1}^{n} \sum_{R=L}^{n} \operatorname{Tree}[L, R] $$ 题解: 要求的是经过边的数量,可以考虑每条边对答案的贡献。 阅读全文
posted @ 2019-06-15 18:02 shellpicker 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 N 个节点的无根树,边权都是 1,可以把树上父亲相同的两条长度相同的链合并,问最后是否可以合并成一条链,如果可以,输出链的最小长度,否则输出 1。 题解: ​由于我们不知道最后的根是哪个节点,于是我们先随便找一个点dfs一次,并用一个 set 来记录当前节点为根的子树中所有链的长 阅读全文
posted @ 2019-06-15 17:47 shellpicker 阅读(235) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 39 下一页