BZOJ1010玩具裝箱Toy】的更多相关文章

@[斜率優化] Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压 缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中. P教授有编号为\(1 .. N\)的\(N\)件玩具,第\(i\)件玩具经过压缩后变成一维长度为\(C_i\).为了方便整理, P教授要求在一个一维容器中的玩具编号是连续的.同时如果一个一维容 器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物,形式地说如果将第i件玩具到第j个玩具放到一个容器…
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的.同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物,形式地说如果将第i件玩具到第j个玩具放到一个容器中,那么容器的长度将为 x=j-i+Sigma(Ck) i<…
题目大意:将n个数分成若干组,并且每组的数在原数组中应是连续的,每组会产生的代价为sum(i)-sum(j)+i-j-1-m,m为已知的常数.求最小代价. 题目分析:定义dp(i)表示将前 i 个元素分好组后产生的最小代价,状态转移方程很显然了: dp(i)=min(dp(j)+[sum(i)-sum(j)+i-j-1-m)]^2).另f(i)=sum(i)+i,并且另g(i)=f(i)-1-m,则dp(i)可整理成dp(i)=min(dp(j)+sum(j)^2-2*g(i)*sum(j))+…
题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉小南一个谜題: “眼镜藏在我左数第3个玩具小人的右数第1个玩具小人的左数第2个玩具小人那里. ” 小南发现, 这个谜题中玩具小人的朝向非常关键, 因为朝内和朝外的玩具小人的左右方向是相反的: 面朝圈内的玩具小人, 它的左边是顺时针方向, 右边是逆时针方向; 而面向圈外的玩具小人, 它的左边是逆时针方…
玩具装箱 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的.同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物,形式地说如果将第i件玩具到第j个玩具放到一个容器中,那么容器的长度将为 x=j-i+1+Sigma(Ck) i<=K<=…
题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉小南一个谜題: “眼镜藏在我左数第3个玩具小人的右数第1个玩具小人的左数第2个玩具小人那里. ” 小南发现, 这个谜题中玩具小人的朝向非常关键, 因为朝内和朝外的玩具小人的左右方向是相反的: 面朝圈内的玩具小人, 它的左边是顺时针方向, 右边是逆时针方向; 而面向圈外的玩具小人, 它的左边是逆时针方…
传送门 题目分析: 设\(f[i]\)表示装前i个玩具的花费. 列出转移方程:\[f[i] = max\{f[j] + ((i - (j + 1)) + sum[i] - sum[j] - L))^2\}\] 令\(x[i] = sum[i] + i\), \(P = L + 1\),上式化为: \[f[i] = max\{f[j] + (x[i] - x[j] - P)^2\}\] 列式并化为斜率形式:\(S(i, j) = \frac{(f[i] + x[i]^2 + 2x[i]P) - (…
推出来式子然后斜率优化水过去就完事了 #include<cstdio> #include<cstring> #include<algorithm> #include<vector> #include<queue> #include<cmath> #define inf 0x3f3f3f3f #define LL long long int using namespace std; ; inline LL rd(){ LL x=;; ;…
题目链接 设\(d[i]\)为将前 \(i\) 个玩具装入箱中所需得最小费用 容易得到动态转移方程: \[d[i] = min(d[j] + (s[i]-s[j]+i-j-1-L)^2), (j<i) \] 其中\(s[i] = \sum_1^iC[i]\),普通DP复杂度为\(O(n^2)\).经过斜率优化后将变为\(O(n)\). 仔细观察我们便于表示可以令\(f[i] = s[i]+i\) 那么式子变成了 \[d[i] = min(d[j] + (f[i]-f[j]-1-L)^2) \]…
呜呼..NOI前一个月正式开始切BZOJ了……以后的题解可能不会像之前的零散风格了,一套题我会集中起来发,遇到一些需要展开总结的东西我会另开文章详细介绍. 用了一天的时间把HNOI2008这套题切了……感觉新知识好多啊……一定是我太弱了,各方面能力还都需要加强,尤其是DP啦推导啦神马的 BZOJ1004 Cards: 题目大意: 桌上有N张牌,将这N张牌染成sr张红色,sg张绿色和sb张蓝色,然后给出M种洗牌方式,可以通过洗牌得到的方案视作相同方案,问不同的染色方案数.输入中保证任何一种连续多次…