[HAOI2008] 糖果传递
有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。
求使所有人获得均等糖果的最小代价。
第一行一个正整数n<=1'000'000,表示小朋友的个数.
接下来n行,每行一个整数ai,表示第i个小朋友得到的糖果的颗数.
其实,求什么设什么就好了。
因为,一个人的糖果的变化,只能是和左边或者右边的人互动。
设x[i]为第i+1个人,给第i个人的糖果数量(可以是负数)
x[n]表示 ,第1个人给第n个人的糖果数量。
然后就推式子就行了。
类似设方程思想。
[BZOJ1045] [HAOI2008] 糖果传递 (贪心)
[ZJOI2006]物流运输
一张图,n天,m个城市。每天从1~m走一次,花费路径长度的代价。
某些地点会在一些天内不能通行。每变更一次方案,还要另花费k的代价。
求n天总的最小代价。
n(1<=n<=100)、m(1<=m<=20)
因为,麻烦点就在路径方案的变化。所以,考虑枚举在第几天改变方案即可。
因为一切都和天数有关系,所以,
f[i]表示,前i天的最小方案。
cos[i][j]表示,从i~j天,不换路线,1~n最短的路径
f[i]=min(f[j]+cos[j+1][i]+k) 相当于枚举最后一次的路径走的天数。初值:f[i]=cos[1][i] (不行就是inf)