B
我用贪心搞的,别人说可以用背包
因为t只是1或2, 我们把书分成1和2两堆,然后分别按w排序(大的在前面),然后分别枚举1和2选了几个,肯定是从每堆的第一个开始取的。
C
把题目转化为求剩下灯的数字排放顺序,高中题,组合数学搞一下, 中间有个二分幂。
D
简单模拟题, 如果遇到(同一基点和同一方向)2次就输出-1, 判断什么时候停止就是(四条边上的黑点都被访问过了)。
注意边上的黑点有可能经过两次,用2个set维护一下即可。
E
树形DP,树上的操作。
枚举每条修改的边,然后对这条边(u----v)两端的树(分别为树A,B,其节点个数分别为a,b)处理边计算的次数。
总费用为: 枚举的这条边的费用*a*b + a *(树B中所有点走到v的总费用) + b *(树A中所有点走到u的总费用) + 树A中每个点相互流动的总费用 + 树B中每个点相互流动的总费用。
具体细节还得自己分析,这样可以达到强化树操作的目的。