題目評測在這裡
一道很明顯的1d1d動態規劃,方程很好寫
f[i]=min
直接寫的話500000的資料量會讓你明白。
兩種做法:
①四邊形不等式優化
很明顯的,用w[i+1,j]表示上述方程裡的( i-(j+1)+s[i]-s[j]-l )2,不難驗證這是個滿足單調性的,也就是說對於這個方程,決策是單調的
那麼根據決策單調性,很自然的就有o(nlogn)的演算法了
決策單調性
1/**②斜率優化 o(n)2*prob : hnoi 2008 toy
3*sol : 1d1d dp -- 決策單調性
4*data : 2012-6
5*author : zhou hang6*/
78 #include 9 #include 10 #include 11 #include 12 #include 13
14#define maxn 55000
15#define lld long long
1617
18using
namespace
std;
1920
struct
node
21 q[maxn];
2526
intn,l;
27lld f[maxn],c[maxn];
2829
lld sqr(lld x)
3033
34 lld cal(int x,int
y)35
3839
void
dp()
4065
66//
二分,留下當前決策的一部分
67 l=q[tail].x; r=q[tail].y+1;68
while (l+1
6974
if (r>=n+1) continue;75
76 q[tail].y=l;
77 q[++tail].x=r;
78 q[tail].y=n;
79 q[tail].pos=i;80}
8182}83
8485
intmain()
8697
98dp();
99100 cout
101102
fclose(stdin); fclose(stdout);
103return0;
104 }
個人覺得實際上斜率優化就是凸完全單調性的一種特殊情況,關於斜率優化的使用方法,這個人條理很清晰,覺得很好,受到了很大啟發
在這裡謝一聲
關於斜率優化的講解,這個裡面講的很好
這道題直接說化簡方程後的結果了:((f[x]+s'[x]*s'[x])-(f[y]+s'[y]*s'[y]))/(s'[x]-s'[y])>2*(s'[i]-l') 其中s'[i]=s[i]+i,l'=l+1
g(x,y)=((f[x]+s'[x]*s'[x])-(f[y]+s'[y]*s'[y]))/(s'[x]-s'[y])
具體看**
斜率優化
1/**2*prob : hnoi 2008 toy
3*sol : 1d1d dp -- 斜率優化
4*data : 2012-6
5*author : zhou hang6*/
78 #include 9 #include 10 #include 11 #include 12 #include 13
14#define maxn 55000
15#define lld long long
1617
using
namespace
std;
1819
intq[maxn];
20int
n,l;
21lld f[maxn],s[maxn];
2223
double g(int x,int
y)24
2728
29void
dp()
3046 cout
;47}48
49int
main()
5061
//s'[i]=s[i]+n 用s[i]存s'[i]
6263
dp();
6465
66fclose(stdin); fclose(stdout);
67return0;
68 }
HNOI2008 玩具裝箱
p教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓 縮,其可以將任意物品變成一堆,再放到一種特殊的一維容器中。p教授有編號為1.n的n件玩具,第i件玩具經過 壓縮後變成一維長度為ci.為了方便整理,p教授要求在乙個一維容器中的玩具編號是連續的。同時如果乙...
HNOI 2008 玩具裝箱
p教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任意物品變成一堆,再放到一種特殊的一維容器中。p教授有編號為 1.n 的 n 件玩具,第i件玩具經過壓縮後變成一維長度為 ci 為了方便整理,p教授要求在乙個一維容器中的玩具編號是連續的。同時...
HNOI2008 玩具裝箱toy
重點在講斜率優化 description p教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任意物品變成一堆,再放到一種特殊的一維容器中。p教授有編號為1.n的n件玩具,第i件玩具經過壓縮後變成一維長度為ci.為了方便整理,p教授要求在乙個一...