摘要: 传送门 f[i][j][0] 表示从右下角到左上角,以(i,j)为起点能延伸的最大值 f[i][j][1] 表示从左下角到右上角,以(i,j)为起点能延伸的最大值 up[i][j] 表示(i,j)上面有多少个0 left[i][j] 表示(i,j)左边有多少个0 right[i][j] 表示(i,j 阅读全文
posted @ 2017-06-21 21:16 zht467 阅读(147) 评论(0) 推荐(0)
摘要: 传送门 By tinylic 如果没有b[i]这个属性的话就是明显的01背包问题。 现在考虑相邻的两个物品x,y。假设现在已经耗费p的时间,那么分别列出先做x,y的代价: a[x]-(p+c[x])*b[x]+a[y]-(p+c[x]+c[y])*by a[y]-(p+c[y])*b[y]+a[x] 阅读全文
posted @ 2017-06-21 19:42 zht467 阅读(152) 评论(0) 推荐(0)
摘要: 传送门 f[i][j] 表示前 i 盆花,放到前 j 个花盆中的最优解 pre[i][j] 记录前驱 代码 阅读全文
posted @ 2017-06-21 18:47 zht467 阅读(153) 评论(0) 推荐(0)
摘要: 传送门 三点在树上距离相等的情况只有一种,就是以某一个点为中心,三个点到这个点的距离相等。 所以直接枚举每个点作为中心,dfs这个中心的子树,根据乘法原理统计答案即可。 时间复杂度 O(n2) (n <= 5000) 代码 阅读全文
posted @ 2017-06-21 17:10 zht467 阅读(129) 评论(0) 推荐(0)
摘要: 传送门 什么鬼的题? 代码 阅读全文
posted @ 2017-06-21 15:27 zht467 阅读(194) 评论(0) 推荐(0)
摘要: 传送门 f[i][j]表示区间 i-j 合并的最大值 转移: 若f[i][k] && f[k+1][j] && f[i][k] == f[k+1][j] --> f[i][j] = max(f[i][k]+1,f[i][j]) 但要注意, 若f[i][k]!=f[k+1][j],那么无法进行转移 代 阅读全文
posted @ 2017-06-21 15:24 zht467 阅读(104) 评论(0) 推荐(0)
摘要: 传送门 设f[i]表示i个鼹鼠出现后,打死鼹鼠的最大值 动态转移方程:f[i]=max{f[j]+1}, 条件:abs(x[i]-x[j])+abs(y[i]-y[j])<=time[i]-time[j] (j<i) 代码 阅读全文
posted @ 2017-06-21 10:56 zht467 阅读(142) 评论(0) 推荐(0)
摘要: 传送门 题解 阅读全文
posted @ 2017-06-21 09:12 zht467 阅读(138) 评论(0) 推荐(0)