D1T1 程序自动分析
题目大意:给定 109 个变量和 n 个等于/不等于的关系,判断能否存在一组解满足所有关系
并查集傻逼题,NOIP小孩都会做
离散化一下,然后把相等的都用并查集并起来,判断每对不等关系是不是在同一并查集中就行了
代码没拷回来,懒得再写一遍了
D2T2 软件包管理器
题目大意:给定一棵有根树,每个点有黑白两种颜色,初始都为白色,每次进行以下两种操作:
1.将某个点所在的子树染白
2.将某个点到根路径上的点染黑
求每次操作后有多少点的颜色发生了改变
树剖傻逼题,NOIP小孩都会做
维护一棵有根树,支持链查询,链修改,子树查询,子树修改
显然链剖就行了
代码也没拷回来,懒得再写一遍了
D3T3 寿司晚宴
题目大意:给定
n≤500
DP傻逼题,我竟然不会做
首先我们把一个数字看成这样一坨东西:
小于 500−−−√ 的质数只有 8 个,我们开一个
大于 500−−−√ 的质数只会在这个数字中出现最多一个(即一个数字中最多只有一个大于 500−−−√ 的质因数),我们把数字按照这个质数分类,没有大于 500−−−√ 的质因数的数每个自成一类
那么显然一类数最多只有一个人能取 两个人都取同一类数的话就会出现不互质的情况
然后我们就可以DP辣!!
令 fi,j 表示第一个人选择的质数集合为 i ,第二个人选择的质数集合为