tg 47
T1
是否\(\exist\)合法路径的充要条件
\(\exist 2\)个二元组\((i_1,j_1)\&(i_2,j_2)\)满足
\(a_{i_1-1,j_1}=a_{i_1,j_1-1}\and a_{i_2-1,j_2}=a_{i_2,j_2-1}\)
并且下列条件满足任意一个:
\(i_1<i_2\and j_1<j_2\)
\(i_1=i_2\and j_1=j_2-1\)
\(i_1=i_2-1\and j_1=j_2\)
后两个条件本质相同但是和第一个一起搞容易挂
可以预处理特判掉后两个条件
第三个条件就是常规二维偏序的解决方式
T2
平衡树两个性质\(:\)树高\(\log ,\)中序遍历单增
于是最起码我们知道爹是谁了
然后预处理所有树高下平衡树的合法方案数
\(f_i=f_i-1+f_i-2+1\)
这种删点说实话\(DP\)还真不好搞
考虑贪心
对于每个节点考虑删掉以后是否合法
主要判选完是否\(\leq k\)
T3
一个单调栈先预处理所有能够当最大值的地方
\(f_{i,j,k,l}\)就是\(i\)这个位置考虑之前最大值\(j\)并且之后需要存在一个大于\(j\)的值
\(k\)表示操作数,\(l\)奇偶性
前缀后缀做一遍\(DP\)合并就是乘
由于先单调栈,并且可操作数的关系
实际上\(j\)和\(K\)同阶的,时空复杂度\(O(nK^2)\)
T4
补一下?
\(10pts:\)根据贴出来的定义,直接暴力枚举整个排列建边
然后直接暴力找环求\(lcm\),时间复杂度阶乘
\(30pts\)
枚举整数拆分上组合数
还有一种考虑\(DP\)
就是\(f_{i,j}\)表示和为\(i,lcm\)为\(j\)的答案
然后枚举排列数转移
\(100pts\)
\(j\)一维可以很大
考虑根号分治,
对于大于根号的质因数,显然是只有一个的,统计是否存在即可
对于小于的,记录\(lcm\),算贡献乘进去

浙公网安备 33010602011771号