二轮前水题计划

BZOJ4145: [AMPPZ2014]The Prices

f[sta][i]表示买完sta中集合中的物品,当前在i号城市的最小代价

转移的时候枚举一下最后买的物品以及从哪儿买

前缀和优化一下

复杂度O(n2^mm)

cf 1129 E. Legendary Tree

每次可以给定两个不相交且非空的点集以及一个常数({S}, {T}, p),系统会返回(u∈S, v∈T)且(u, v)经过p的点的对数。

需要在11111次操作后还原出树的形态

n <= 500

首先转化为有根树,假设1是根。根据题目描述我们实际上得到了几个操作

1.询问点集S中有多少在p的子树内 - ({S}, {1}, p)即可

2.询问某个点p的子树大小 - {{2, 3, 4, 5}, {1}, p}

接下来考虑怎么还原出一棵树,显然我们只要维护出父子关系就行了

首先询问出所有点的siz,从小到大排序,那么此时每个点的孩子一定在它左边。接下来动态的从做往右扫,实时维护一下没有找到父亲的所有节点。

然后直接在点集中二分就行了。

UOJ #311. 【UNR #2】积劳成疾

每个长度为k的区间都是独立的,所以我们直接对着最大值dp

f[i][j]表示长度为i的序列,最大值为<=j时 的所有答案,也就是对整体进行dp

转移的时候只需要考虑第一个j在哪儿,其余的可以通过f[i][j - 1]转移

猜你喜欢

转载自www.cnblogs.com/arkiflow/p/10774947.html