[CF321E]Ciel and Gondolas&&[BZOJ5311]贞鱼】的更多相关文章

codeforces bzoj description 有\(n\)个人要坐\(k\)辆车.如果第\(i\)个人和第\(j\)个人同坐一辆车,就会产生\(w_{i,j}\)的代价. 求最小化代价.\(n\le4000\) sol 凸优化+决策单调性优化 这么一讲其实这题就已经做完了,复杂度\(O(n\log n\log w)\) code \(bzoj\)上需要卡常.上网蒯个读入优化模板就行了. #include<cstdio> #include<algorithm> #inclu…
LINK:CF321E Ciel and Gondolas 很少遇到这么有意思的题目了.虽然很套路.. 容易想到dp \(f_{i,j}\)表示前i段分了j段的最小值 转移需要维护一个\(cost(i,j)\) 暴力显然不太行 不过暴力枚举决策的话 可以预处理前缀和线性推出. 显然想要优化决策的话第一步就需要O(1)求出\(cost(i,j)\) 经过画图 可以发现预处理出\(g[i][j]\)表示从\((1,1)\)到\((i,j)\)这个矩形中的点值和 和 \(sum_i\)表示\((1,1…
题意:给定序列,将其分成k段.如果[l, r]在一段,那么每对不相同的i,j∈[l, r]都会有ai,j的代价.求最小总代价. 解:提供两种方案.第三种去bzoj贞鱼的n²算法. 决策单调性优化: 对于两个转移点j1 < j2,若在某个点i上j2更优,则i后面的j2全部更优.这就是决策单调性. 有两种写法.一种是维护决策栈(???),我自己YY了一个线段树写法WA飞了. 还有一种是分治.对于一段待转移的区间[l, r],它们的最优转移来自于[L, R] 则对于mid = (l + r) >&g…
把状态看成层,每层决策单调性处理 题目描述 题目大意 众所周知,贞鱼是一种高智商水生动物.不过他们到了陆地上智商会减半.这不?他们遇到了大麻烦!n只贞鱼到陆地上乘车,现在有k辆汽车可以租用.由于贞鱼们并不能在陆地上自由行走,一辆车只能载一段连续的贞鱼.贞鱼们互相有着深深的怨念,每一对贞鱼之间有怨气值.第i只贞鱼与第j只贞鱼的怨气值记为Yij,且Yij=Yji,Yii=0.每辆车载重不限,但是每一对在同辆车中的贞鱼都会产生怨气值.当然,超级贞鱼zzp长者希望怨气值的总和最小.不过他智商已经减半,想…
一眼可以看出$O(kn^{2})$的$dp$方程,然后就不会了呜呜呜. 设$f_{i, j}$表示已经选到了第$i + 1$个数并且选了$j$段的最小代价,那么 $f_{i, j} = f_{p, j - 1} + sum(p + 1, i)  (0 \leq p \leq i)$ 这个$sum$可以通过把$j > i$的格子的值记为$0$,预处理前缀和得到. $sum(x, y) = s_{y, y} - s_{y, x}$ 以下全都不是我想出来的: 外层枚举$j$可以划分阶段转移,不容易看出…
大胆猜想答案随k变化是凸函数,且有决策单调性即可.去粘了份fread快读板子才过. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define N 4010 ')) c=getcha…
题目链接 CF321E 题解 题意:将\(n\)个人分成\(K\)段,每段的人两两之间产生代价,求最小代价和 容易设\(f[k][i]\)表示前\(i\)个人分成\(k\)段的最小代价和 设\(val(i,j)\)为\(i\)到\(j\)两两之间产生的代价和,容易发现就是一个矩形,可以预处理前缀和\(O(1)\)计算 那么有 \[f[k][i] = min\{f[k - 1][j] + val(j + 1,i)\}\] 直接转移显然\(O(n^2k)\) 我们把\(val(j + 1,i)\)拆…
还是年轻啊算的时候少乘一个4000被卡二分上界了...%%%%bright教我超级快速读D飞bzoj垃圾卡常数据 我们容易写出这样的DP方程:f[i][j]=f[k][j-1]+val(k+1,j) 然后可以发现g(j)是单调减而且是下凸的 那么我们就可以愉快的上wqs二分了 那么f[i]就表示无限分最优解,就有f[i]=f[j]+val(j+1,i)+C 而这个明显是四边形不等式优化的形式 O(nlognlogw)踩了 #include<cstdio> #include<iostrea…
[BZOJ5311/CF321E]贞鱼/Ciel and Gondolas(动态规划,凸优化,决策单调性) 题面 BZOJ CF 洛谷 辣鸡BZOJ卡常数!!!!!! 辣鸡BZOJ卡常数!!!!!! 辣鸡BZOJ卡常数!!!!!! 所以我程序在BZOJ过不了 题解 朴素的按照\(k\)划分阶段的\(dp\)可以在\(CF\)上过的. 发现当选择的\(k\)增长时,减少的代价也越来越少, 所以可以凸优化一下,这样复杂度少个\(k\) 变成了\(O(nlogw)\) #include<iostrea…
题意 Problem 5311. -- 贞鱼 5311: 贞鱼 Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 677  Solved: 150[Submit][Status][Discuss] Description 众所周知,贞鱼是一种高智商水生动物.不过他们到了陆地上智商会减半. 这不?他们遇到了大麻烦! n只贞鱼到陆地上乘车,现在有k辆汽车可以租用. 由于贞鱼们并不能在陆地上自由行走,一辆车只能载一段连续的贞鱼. 贞鱼们互相有着深深的怨念,每…