时间安排
7
:
55
−
8
:
20
7:55-8:20
7:55−8:20 把四道题看了一遍,T1像是dp,T2是个dp,T3树形dp,T4没思路。
8
:
20
−
9
:
00
8:20-9:00
8:20−9:00 我先写了T3,对于T3,我的想法是设
f
x
,
0
/
1
f_{x,0/1}
fx,0/1 表示在以x为根的子树内且x本身选/不选的满足条件的最大的点数,状态转移为
f
x
,
0
=
m
a
x
(
f
y
,
0
,
f
y
,
1
)
f_{x,0}=max(f_{y,0},f_{y,1})
fx,0=max(fy,0,fy,1),
f
i
,
1
f_{i,1}
fi,1的转移比较麻烦,我的想法是在子树内找所有权值大于当前根的点,设为
y
y
y,则
f
x
,
1
=
m
a
x
(
f
y
,
0
,
f
y
,
1
)
f_{x,1}=max(f_{y,0},f_{y,1})
fx,1=max(fy,0,fy,1),时间复杂度应该为
O
(
n
2
)
O(n^2)
O(n2)。
9
:
00
−
9
:
50
9:00-9:50
9:00−9:50 对于T2,我的想法是设
f
i
f_i
fi 表示考虑前
i
i
i 位,满足条件的最小值,我转移的想法是另设
g
g
g 和
h
h
h 数组表示最优情况下
i
i
i 位置之前的最长的连续的长度和前一个字母是什么,但是写出来后不太对。
9
:
50
−
10
:
40
9:50-10:40
9:50−10:40 对于T1,我的想法是先考虑一共有多少种可能,然后考虑什么情况会使答案减少,显然一个线段包含另一个线段时会使答案变小,所以我先求出总可能
∑
i
=
1
n
C
n
i
×
i
\sum \limits_{i=1}^nC_n^i \times i
i=1∑nCni×i,然后求出包含的线段个数
s
u
m
sum
sum,再考虑这样的线段的贡献
(
n
−
2
)
n
−
3
(n-2)^{n-3}
(n−2)n−3,但是这样会多减,但我没有处理的方法,就先写了一个暴力。
10
:
40
−
11
:
30
10:40-11:30
10:40−11:30 由于
m
≤
6
m \leq 6
m≤6,很明显是一个状压,但是我一直在推状压的转移,最后也没怎么推出来。
11
:
30
−
12
:
10
11:30-12:10
11:30−12:10 最后又把四道题都看了一遍,然后提交。
赛后总结
T1
T1我的大致思路是对的,就是对于每种累加一下贡献,和正解的差距主要还是在对贡献的理解以及没有想到是递推。
T2
T2的想法和正解基本一样,但是我的dp转移式推错了,这个转移式和背包类似,可能还是背包的题隔的时间太长了,这种简单dp都没推出来。
T3
T3和正解差距比较大,我对于T3的理解类似于上司的舞会,是一个树形dp,主要还是没有及时发现这的题的实质其实就是求一个树上的LIS,还有就是暴力的有一点细节没处理好,还有特判也出了一点问题,不然应该是50分的。
T4
T4我基本就没什么想法,思维的瓶颈主要在于棋子的攻击范围不确定,而且也不知道怎么压状态。