2016-5-30模拟测试
2016-05-30 22:32
323 查看
T1
description
给一棵\(n(\leqslant 100000)\)个节点的树,每个节点的种类两两不同,要求支持一下几个操作:
1.将这个点到根的路径变成一种新的点
2.询问以这个点为根的子树中的点到根的所有路径,对于每一条路径,贡献为这条路径上不同的点的个数。
3.换根
solution
可以发现这些都是LCT的操作,将虚边设为1,实边设为0,则只需要问子树内所有点到根的权值和就行了,而这个在\(access\)的过程中配合线段树的子树修改即可。
notice
在配合线段树进行子树修改的时候,往往需要知道一个点在另一个点的哪棵子树中,这可以用倍增或者链剖处理,LCT处理起来就更方便了,并且我们可以以直接知道这些点和根的位置关系,讨论一下就行了(注意讨论的严谨性)。
T2
description
对于\(\forall 1 \leqslant k \leqslant n\) 求\(1,2,3...n\)的所有错排中含有长度为\(k\)的环(令\(i\)向\(a_i\)连边)的排列的数量。
solution
枚举循环节长度,以及至少有几个循环节,容斥计算即可,还要套个错排公式。
T3
description
给一个序列\(a_1,a_2,...a_n\),若\(i<j且a_i>a_j\)则\(i,j\)之间有一条边,求即是独立集又是支配集的集合的数量。
solution
独立集:上升序列
支配集+独立集:设\(f_i\)为前\(i\)个数选了\(i\)的方案数,对于\(f_i\)可以更新\(f_j\)的需满足对于\(\forall i < k < j,a_i < a_k < a_j\),复杂度\(O(n^2)\).
我考场上记了一个已选的最大的和未选的最小的,本来是\(O(n^3)\)的但是必须满足最大的小于最小的,就会有很多无用状态,拿map进行转移就通过了所有的测试点。
description
给一棵\(n(\leqslant 100000)\)个节点的树,每个节点的种类两两不同,要求支持一下几个操作:
1.将这个点到根的路径变成一种新的点
2.询问以这个点为根的子树中的点到根的所有路径,对于每一条路径,贡献为这条路径上不同的点的个数。
3.换根
solution
可以发现这些都是LCT的操作,将虚边设为1,实边设为0,则只需要问子树内所有点到根的权值和就行了,而这个在\(access\)的过程中配合线段树的子树修改即可。
notice
在配合线段树进行子树修改的时候,往往需要知道一个点在另一个点的哪棵子树中,这可以用倍增或者链剖处理,LCT处理起来就更方便了,并且我们可以以直接知道这些点和根的位置关系,讨论一下就行了(注意讨论的严谨性)。
T2
description
对于\(\forall 1 \leqslant k \leqslant n\) 求\(1,2,3...n\)的所有错排中含有长度为\(k\)的环(令\(i\)向\(a_i\)连边)的排列的数量。
solution
枚举循环节长度,以及至少有几个循环节,容斥计算即可,还要套个错排公式。
T3
description
给一个序列\(a_1,a_2,...a_n\),若\(i<j且a_i>a_j\)则\(i,j\)之间有一条边,求即是独立集又是支配集的集合的数量。
solution
独立集:上升序列
支配集+独立集:设\(f_i\)为前\(i\)个数选了\(i\)的方案数,对于\(f_i\)可以更新\(f_j\)的需满足对于\(\forall i < k < j,a_i < a_k < a_j\),复杂度\(O(n^2)\).
我考场上记了一个已选的最大的和未选的最小的,本来是\(O(n^3)\)的但是必须满足最大的小于最小的,就会有很多无用状态,拿map进行转移就通过了所有的测试点。
相关文章推荐
- JAVA实现程序多语言(程序国际化)
- 1094. The Largest Generation (25)
- 设计模式之外观模式(结构型)
- 【cocos2dx 3.3 lua】04 纸牌翻转效果--类似QQ斗地主癞子效果
- Easy-题目58:7. Reverse Integer
- javascript基础语法——词法结构
- echo 和 print
- 分类评测标准
- Leetcode 28. Implement strStr() KMP算法解题
- leetcode #62 in cpp
- 动态规划1012
- 俄罗斯方块
- 引入css少引入了rel="stylesheet" 这行代码。导致整个页面空白、
- 解读OpenGL棋盘纹理贴图
- Thinking in C++摘要 第一卷第
- Android 6.0 动态权限申请
- echart 柱状图 实现动态加载
- nodeJs 初学案例摘要
- PHP 5.2 5.3 5.5 5.4 5.6 对比以及功能详解
- react 环境配置