【文件属性】:
文件名称:动态规划的漂亮打印 acm
文件大小:1KB
文件格式:CPP
更新时间:2014-06-19 07:28:56
acm 动态规划
动态规划的例子#include
using namespace std;
int c[1000]; //状态数组
const int num=10;
const int M=20 ;
const int MaxValue=10000;
int l[num]={6 , 7 , 1 ,4 ,6 ,3 ,1 , 5 , 3 , 4 };//存储每具单词的长度
int p[1000]; //保存记录用于重构最优解的数组
//lc函数用来分类,把边界情况考虑进去
int lc(int i,int j) {
int temp=0;
for(int k=i;k<=j;k++)
temp+=l[k];
int s=M-j+i-temp;
if(s<0) return MaxValue; //从i到j的单词不能放在一行
if(j==10) return 0; //最后一行
else return s*s*s;
}
void PrettyPainting() {
c[0]=0; //base case;
int min;
for(int j=1;j<=num;j++) {
c[j]=MaxValue;
for(int i=1;i<=j;i++)
if(c[i-1]+lc(i,j)