sgu183 Painting the balls_dp
2014-08-18 23:31
337 查看
#include <iostream> #include <cstring> #include <cstdio> //F[i, j] = c[j] + min {F[k, i]) ( j - M < k < i} using namespace std; const int N=105; const int inf=0x3fffffff; const int MAXN=10005; int n,m,c[MAXN],dp ;//sgu限内存,dp不能开大,下面%N优化 void init(int f[]){ for(int i=0;i<N;i++) f[i]=inf; } int main() { cin>>n>>m; for(int i=1;i<=n;i++) scanf("%d",c+i); for(int i=1;i<=m;i++)init(dp[i]); for(int i=1;i<=m;i++) for(int j=1;j<i;j++)dp[i][j]=c[i]+c[j]; for(int i=m+1;i<=n;i++){ init(dp[i%N]);//%N的妙处 for(int j=i-m+1;j<i;j++)for(int k=i-m;k<j;k++) dp[i%N][j%N]=min(dp[i%N][j%N],dp[j%N][k%N]+c[i]);//pay attention to 下标起始位置 } int ans=inf; for(int i=n-m+2;i<=n;i++)//看懂的恢复下 for(int j=n-m+1;j<i;j++) ans=min(dp[i%N][j%N],ans); cout<<ans<<endl; return 0; }
相关文章推荐
- sgu183:Painting the balls(dp+优化)
- SGU183 Painting the balls(DP+优化)
- SGU 183 Painting the balls (DP优化)
- SGU 183 Painting the balls(DP)
- Painting the balls SGU - 183
- SGU - 143 Long Live the Queen 树形dp之加和问题
- SGU P143 Long Live the Queen【树形DP】
- sgu143 树形DP Long Live the Queen
- SGU 143. Long Live the Queen(树形DP)
- 【ZOJ3929 The 16th Zhejiang University Programming ContestC】【DP】Deque and Balls n个数放入双端队列2^n种方案有多少个位置
- SCU3037 Painting the Balls
- SGU 365 Ships of the Desert 简单数位dp
- sgu 143 Long live the Queen 简单树形dp
- SGU 365 Ships of the Desert dp
- Painting The Wall 期望DP Codeforces 398_B
- LightOJ1317---Throwing Balls into the Baskets (概率dp)
- [Codeforces398B]Painting The Wall(期望dp)
- SGU 143 Long Live the Queen (树形DP)
- Light OJ 1317 Throwing Balls into the Baskets 概率DP
- SGU 143 Long Live the Queen(树形DP)