摘要:
题目链接:http://poj.org/problem?id=2353 状态方程:f[i][j]= Max{ Max{ sum[j]-sum[k-1]+f[i-1][k] | k<=j } , Max{ sum[k]-sum[j-1]+f[i-1][k] | k>j } }。复杂度O(n*m^2),如果不优化的话会TLE。分离状态转移方程: 1,k<=j 时,f[i-1][k]-sum[k-1]; 2,k>j 时,f[i-1][k]+sum[k]; 即把与j相关的分离出来,那么维护一个前缀最小和后缀最小就可以了,并且记录位置。 1 //STATUS:C++_AC_172 阅读全文
摘要:
题目链接:http://poj.org/problem?id=3034 此题的状态方程很容易想出来,以时间为阶段划分,然后地图为状态,f[k][i][j]=Max{ f[k-1][x][y]+t | t=sum( map[k][p][q] && (p,q)在线段(i,j)-(x,y)上 }。 转移的时候用点小技巧就可以了,就是先把通方向上的单位整数向量求出来,在更新的时候逐个用 n*单位整数向量 (n满足距离不超过d) 来更新f[k][i][j],最后遍历一遍最值。 此题有一个很坑的trick:hammer可以在正整数坐标轴的外面,很坑啊有不有!!!足足贡献了4个WA= = 1 阅读全文