RQNOJ PID273 马棚问题
2014-08-24 20:07
211 查看
经典的分组DP
f[i][j]=min{f[k][j-1]+w[k+1][i]}
考虑清楚循环和初始化
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<climits>
using namespace std;
int w[1000][1000],f[1000][1000],n,k,a[1000],s[1000];
int main()
{
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++){ cin>>a[i]; s[i]=s[i-1]+a[i]; }
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
w[i][j]=(s[j]-s[i-1])*(j-i+1-s[j]+s[i-1]);
memset(f,63,sizeof(f));
f[0][0]=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
for(int k=j-1;k<i;k++)
f[i][j]=min(f[i][j],f[k][j-1]+w[k+1][i]);
cout<<f
[k];
while(1);
return 0;
}
f[i][j]=min{f[k][j-1]+w[k+1][i]}
考虑清楚循环和初始化
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<climits>
using namespace std;
int w[1000][1000],f[1000][1000],n,k,a[1000],s[1000];
int main()
{
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++){ cin>>a[i]; s[i]=s[i-1]+a[i]; }
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
w[i][j]=(s[j]-s[i-1])*(j-i+1-s[j]+s[i-1]);
memset(f,63,sizeof(f));
f[0][0]=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
for(int k=j-1;k<i;k++)
f[i][j]=min(f[i][j],f[k][j-1]+w[k+1][i]);
cout<<f
[k];
while(1);
return 0;
}
相关文章推荐
- 【解题报告】[动态规划] RQNOJ - PID273 / 马棚问题
- RQNOJ 273 马棚问题
- rqnoj-273-马棚问题-dp
- RQNOJ 题目273 马棚问题(DP)
- RQNOJ-PID39 / 饮食问题
- RQN 273 马棚问题 dp
- 【解题报告】[动态规划] RQNOJ - PID105 / 核电站问题
- 【动态规划】【RQNOJ】马棚问题
- 取PID遇到的c语言问题
- 【动态规划】【RQNOJ】购物问题
- RQNOJ 28 LCA问题
- MYSQL启动后报:ERROR! The server quit without updating PID file错误的问题解决
- jstat找不到pid问题
- 怎样通过iisapp命令查找pid来解决IIS的cpu占用率过高问题
- 关于mysql启动问题---mysqld_safe mysqld from pid file * ended
- 解决vmware的compat_netdevice.h 273 error redefinition of struct napi_struct问题
- http://acm.nyist.net/JudgeOnline/problem.php?pid=211&&有向图传递闭包问题
- 线程问题——同样的程序,在ubuntu中运行和嵌入式中PID表现不同的原因
- [RQNOJ]212提示问题
- RQNOJ273_马棚问题