C

一张DAG,边权代表花费,
求从点1到点n,经过的点最多,花费$\leq T$的一条路径

DP

$d[u][s]$ 表示当前在点$u$,经过了s个点的最小花费
最后求一个最大的$s$,使得$d[n][s] \leq T$

D

有n个数,k次操作,每次操作可以选择某个数 +x-x
现在求k次操作以后,使得整个序列的乘积最小

贪心

首先判断当前序列的乘积是不是负数 (0直接视为正数)
若不是则经过最少的操作产生一个负数
然后取每个数的绝对值,每次选择最小的数 +x