A.直接比较y和z的最小值即可
#include
#include
#include
#include
#include
B 最大化直接让得3分全在前面即可
#include
#include
#include
#include
#include
C.递归我写的比较复杂就不贴了
D
直接跑最短路模板
状态只有n*m个点,每个点要么不改变当前值,要么改变当前值
所以状态只有n*m*2个不同状态
然后直接跑个dijkstra模板即可
#include
#include
#include
#include
#include
E.
额考虑dp
前i个数,当前倍数是第i-1个总和得j倍
首先初始化1,任何数都可以
假设当前数i,当前数得总和能是i*j,那么因为第i个数能去取到1到m
即最小值是i*j-m,最大值是i*j-1
那么能取到i-1个数总和的x倍数
可以发现这是一个连续的区间
用树状数组优化即可
#include
#include
#include
#include
#include
F .不会0.0