[考试]20151020
1、前言
8道题,太酸爽!但是BZOJ上一些比较简单一点的,但是因为图快写挂了好多。
(P.S. POI的题目在BZOJ上全部都是权限题)
2、Apple 分苹果
大概题意:给出n个数,每个数有三个值a[i],x[i],y[i],分别表示数的权值,放入第一部分的个体收益,放入第二部分的个体收益。求n个数的权值在第一第二部分的分配方案。(收益 = 第一部分权值 * 第一部分个体收益 + 第二部分权值 * 第二部分个体收益)。
总结:为什么我总是把一些贪心题目想动态规划。。基本上我一上来就马上去写动规了,结果状态半天设计不出来,只能写一个非常无脑的贪心,最后就对了30分,其实正解也是贪心,只是不是这么玩的。
题解:先默认所有的数都是第二部分,得到初始答案,把第i个数中的1权值从第二部分拿到第一部分得到的权值是x[i]-y[i],所以根据x[i]-y[i]排序,然后取前m大的即可。
3、MOS 过桥
来源:BZOJ2072 / POI2004
链接:http://www.cnblogs.com/jinkun113/p/4898961.html
4、Sta 树的深度
来源:BZOJ1131 / POI2008
链接:http://www.cnblogs.com/jinkun113/p/4899038.html
5、Tet 立方体大作战
来源:BZOJ1106 / POI2007
链接:http://www.cnblogs.com/jinkun113/p/4901050.html
6、Bag 多人背包
大概题意:共有k个人,每个人有一个容量为v的背包。现有n个物品,每个物品都有体积和价值。现要求:每个人背包里的物理总体积等于v;对于每个人,每种物品只有一个;任意两个人,物品不能完全相同。求最大价值。
题解:F[I, j] [1 .. k] 表示 前i个物品用了j的体积的前k个解的集合F[I, j] = max(F[I-1, j], F[I – 1, j - v[i]] + c[i])注意这里的max过程,不再是两数间取较大值,而是对于两个长度为k的线性表取前k大值,因为两个线性表均有序,所以归并排序即可。
7、naw 括号
题意(这道题真不能做到大概):减法不满足结合率, 例如 (5-2)-1=2, 但 5-(2-1)=4, 因此 (5-2)-1!=5-(2-1). 这意味着表达式5-2-1 依赖减法操作的顺序. 如果没有扩号,假定表达式计算从左到右, 即5-2-1 等于 (5-2)-1.我们给出表达式的形式如下:x1 +/- x2 +/- ... +/- xn,+/- 表示+ (加) - (减), x1,x2,...,xn 表示计算变量. 对下面的表达式x1-x2-...-xn我们想插入n-1对括号得到和表达式相同的结果.例如,我们想得到和下面表达式相等值的表达式x1-x2-x3+x4+x5-x6+x7可以对下面的表达式插入括号x1-x2-x3-x4-x5-x6-x7得到(((x1-x2)-((x3-x4)-x5))-(x6-x7)).注意: 我们只对完整而正确的表达式有兴趣,一个完整正确的表达式必须符合 它可能是单个变量, 可能形如(w1-w2), 而且 w1 和 w2 都是完成而正确的表达式.通常来说,我们对如下空括号形式不感兴趣: (), (xi), ((...)). 而表达式 x1-(x2-x3) 不是完整的,因为它缺少最外层的括号。
题解:F[i,j]表示对i至j添加括号的方案数,G[i,j]表示将i至j全部取反后添加括号的方案数。F[i,j]= ΣF[i,k-1]*G[k+1,j] {k∈[i,j],a[k]=’-‘}G[i,j]= ΣG[i,k-1]*F[k+1,j] {k∈[i,j],a[k]=’-‘}Ans=F[1,N-1] 时间复杂度n^3。
8、Atr 旅游景点
题意:略。
题解:用最短路求出1,2..k+1,N这些点之间的最短路,再用状态压缩动态规划1至N经过2..k+1的最短哈密尔顿路。时间复杂度O(k*m+k^2*2^k)。
9、KUP 子矩阵
来源:BZOJ1127 / POI2008