http://blog.csdn.net/tongjianfeng/article/details/5934598

动态规划太难理解

漂亮打印问题:给定n个英文单词组成的一段文章,各单词的长度依次为 ,要在打印机上打印这段文章,每行至多打印M的字符。一个单词不允许夸行。漂亮打印是指:在每行开始不留空格,行中每个单词之间只留一个空格,若一行打印第i到第j个单词,则此行尾部有 个空格。除最后一行外,希望各行尾部空格尽量少。以各行(除最后一行)的尾部空格数的立方和为漂亮打印的标准,简称漂亮指标。试设计漂亮打印的方案。

* 注意extras[i][j]可能为负,即一行不够打印i~j,有可能将单词打破.
 * lc表示将单词i~j打印在一行上的费用:
 *          ┌∞              if (extras[i][j]<0)
 * lc[i][j]=│0                     if (extras[i][j]>=0 && j=n)
 *          └(extras[i][j])^3     else
 * 设c[i]是安排单词1~i时候的最小费用,则递归的计算如下:
 *      ┌0                                  i=0;
 * c[i]=│
 *      └min{c[j-1]+lc[j][i],1<=j<=i}       i>0;
#include <iostream>
#include <math.h>
#define MAX 100
#define INF 10000
using namespace std;
int len(int s[],int i,int j)  //求单词的总长度
{int t=0;for (int k=i;k<=j;k++){t+=s[k];}return t;
}
int main()
{int n,M;cin>>n>>M;             //n单词数,M行宽int *s=new int[n+1];    //每个单词的长度数组int *c=new int[n+1];    //c[j]为安排1-j的最小费用int *pos=new int[n+1];int i,j;s[0]=0;c[0]=0;for (int a=1;a<=n;a++){
scanf("%d",&s[a]);  输入每个单词的长度
c[a]=INF;}intextra[MAX][MAX],lc[MAX][MAX];int t=0;int k=0;for (i=1;i<=n;i++)  //外循环已经安排的1到i-1的费用{for (j=i;j<=n;j++)  //内循环是本行安排i-j
{extra[i][j]=M+i-j-len(s,i,j);if (extra[i][j]<0)                       //extra[i][j]为多余的空格数
lc[i][j]=INF;                      // 将i~j打印在一行上的费用else if (extra[i][j]>=0&&j==n)lc[i][j]=0;else lc[i][j]=pow(extra[i][j],3); t=c[i-1]+lc[i][j];                   //打印1到j的总费用if (t<c[j]){c[j]=t;pos[k]=j;   //k代表单词的划分位置}}k++;}cout<<c[n]<<endl;for (i=0;i<k&&pos[i]>0;i++){if (pos[i+1]!=pos[i])  //这点似乎有问题{cout<<pos[i]<<" ";}}delete []s;delete []c;return 0;
}

动态规划——漂亮打印问题相关推荐

  1. 用PHP漂亮打印JSON

    我正在构建一个PHP脚本,该脚本将JSON数据提供给另一个脚本. 我的脚本将数据构建到大型关联数组中,然后使用json_encode输出数据. 这是一个示例脚本: $data = array('a' ...

  2. 默认情况下在MongoDB Shell中漂亮打印

    有没有办法告诉Mongo漂亮的打印输出? 当前,所有内容都输出到一行,并且很难读取,特别是对于嵌套数组和文档. #1楼 你可以加 DBQuery.prototype._prettyShell = tr ...

  3. python打印json_Python漂亮打印JSON

    python打印json We can use the Python json module to pretty-print the JSON data. 我们可以使用Python json模块漂亮地 ...

  4. 使用 Python 中的漂亮打印美化您的数据结构

    处理数据对于任何 Pythonista 都是必不可少的,但有时这些数据并不是很漂亮.计算机不关心格式,但如果没有好的格式,人类可能会发现一些难以阅读的东西.当您print()在大型字典或长列表上使用时 ...

  5. groovy 读取html文件,Groovy漂亮打印XmlSlurper从HTML输出?

    我正在使用几个不同的版本来做到这一点,但所有似乎都会导致此错误:Groovy漂亮打印XmlSlurper从HTML输出? [致命错误]:1:171:前缀"xmlns"不能显式绑定到 ...

  6. python json模块的内部实现_python – 如何使用JSON模块进行漂亮打印时实现自定义缩进?...

    所以我使用Python 2.7,使用json模块编码以下数据结构: 'layer1': { 'layer2': { 'layer3_1': [ long_list_of_stuff ], 'layer ...

  7. 漂亮打印——pprint()输出

    pprint模块: 可以使用pprint()和pformat()函数,更漂亮的输出一个字典 >>> import pprint >>> message = 'my ...

  8. python 漂亮打印 pprint 简写

    from pprint import pprintdata = [1,2,('接口设置', '语音识别接口'),[1, 2, 3, 4],"你,我,他", ]pprint(data ...

  9. 如何使用JavaScript漂亮地打印JSON?

    如何以易于阅读的格式(对人类读者而言)显示JSON? 我主要是在寻找缩进和空格,甚至可能是颜色/字体样式/等. #1楼 出于调试目的,我使用: console.debug("%o" ...

最新文章

  1. 【网络流】解题报告: luogu P2045 方格取数加强版(k取方格数)(最大费用最大流)
  2. 【Linux】Centos7 下使用Apache 配置网站虚拟地址, 另附 laravel 虚拟地址配置
  3. python判断英文字母_Python判断两个单词的相似度
  4. mysql国际化_Java的Struts框架中的主题模板和国际化设置
  5. android studio复选按钮样式_Ubuntu与Android开发的邂逅
  6. matlab 神经网络dpi,基于DPI和BP神经网络的P2P流量识别研究
  7. stk在计算机仿真中的应用_学习电路仿真:proteus电路仿真软件在ARM中的应用解析...
  8. Mac 删除自己安装的Python
  9. 一步步教你优化Delphi字串查找(转载)
  10. [USACO12OPEN]Unlocking Block【BFS / 广搜】
  11. 学习笔记(10):每一道试题都是有解题密码(2018年下半年信息系统项目管理师试题讲解)-用这种简单方法破解这么难的试题,我也是醉了(试题21-25)...
  12. V4L2像素格式及其对应的含义
  13. html星空代码在线,怎么操作html星空特效代码
  14. 修改注册表解决 Win7 DbgView 不显示调试信息
  15. 为什么说采购一定要成为专家
  16. vivo6.0系统设备最完美激活xposed框架的教程
  17. 最in [IN词] 分享
  18. 完全背包问题(师从yxc,闫氏Dp)
  19. pr导出视频在哪里?
  20. 计算机管理任务计划程序全部禁用,win10计划任务如何关闭_win10怎么禁用计划任务...

热门文章

  1. 【ASP.NET Web】项目实践—网上宠物店7:制作“个人资料”页面
  2. Sqlalchemy with_entities函数用法
  3. 英语口语中常见的英文缩写
  4. 2018年,六大网页设计流行趋势预测
  5. php用while循环输出99乘法表,用while循环语句编程输出九九乘法口诀表
  6. 【book】AMLF-ch1
  7. 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第三章课后习题参考答案
  8. ENVI5.6、SARscape5.6 培训教程
  9. 常用的Android感应器,Sensor Sense
  10. 浏览器的GreaseMonkey和Trixie插件