- CF1926G Vlad and Trouble at MIT *1900 \texttt{*1900} *1900。
TAG: 树形 dp \texttt{树形 dp} 树形 dp
d
p
i
,
S
,
P
dp_{i,S,P}
dpi,S,P 为
i
i
i 的子树内是否存在 S
和 P
的状态。
转移方程为:
当 s i s_i si 为
C
时dp[x][0][0] += min({ dp[v][1][0] + 1, dp[v][0][1] + 1, dp[v][0][0] }); dp[x][1][0] += min({ dp[v][0][0], dp[v][1][0], dp[v][0][1] + 1 }); dp[x][0][1] += min({ dp[v][0][0], dp[v][1][0] + 1, dp[v][0][1] });
当 s i s_i si 为
S
时dp[x][1][0] += min({ dp[v][1][0], dp[v][0][1] + 1, dp[v][0][0] });
当 s i s_i si 为
P
时dp[x][0][1] += min({ dp[v][1][0] + 1, dp[v][0][1], dp[v][0][0] });
- CF850B Arpa and a list of numbers *2100 \texttt{*2100} *2100。
TAG: 暴力,贪心,乱搞 \texttt{暴力,贪心,乱搞} 暴力,贪心,乱搞
枚举 gcd = g \operatorname{gcd} = g gcd=g,对于每一个 g g g,在每一个大小为 g g g 的区间,前一半直接删除,后一半 + 1 +1 +1,答案即为所有 g g g 的最小值。
- 1353F Decreasing Heights
TAG: dp, 暴力 \texttt{dp, 暴力} dp, 暴力
枚举 a 1 , 1 a_{1, 1} a1,1 的值,然后算出 ( 1 , 1 ) (1, 1) (1,1) 到 ( i , j ) (i, j) (i,j) 的步数即 a i , j = a 1 , 1 + i + j − 2 a_{i,j} = a_{1, 1} + i + j - 2 ai,j=a1,1+i+j−2,并暴力 d p dp dp。