博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spoj 345
阅读量:5052 次
发布时间:2019-06-12

本文共 892 字,大约阅读时间需要 2 分钟。

DP  想了好久  还是看了一下题解。。。。 f[i][j]表示i到j全部合并后的最小花费,f[i][j] = min{f[i][k]+f[k+1][j]+d[i][k]*d[k+1][j]} (i <= k <= j-1)

#include 
#include
#include
#include
using namespace std;#define INF 100000000int f[101][101], d[101];int n;int main(){ while (scanf("%d",&n) == 1) { memset(d, 0, sizeof(d)); memset(f, 0, sizeof(f)); for (int i = 1; i <= n; i++) scanf("%d",&d[i]), d[i] += d[i-1]; for (int k = 2; k <= n; k++) for (int i = 1; i <= n-k+1; i++) { int j = i+k-1; f[i][j] = INF; for (int q = i; q <= j-1; q++) f[i][j] = min(f[i][j], f[i][q]+f[q+1][j]+((d[q]-d[i-1])%100)*((d[j]-d[q])%100)); } printf("%d\n",f[1][n]); } return 0;}

转载于:https://www.cnblogs.com/avema/p/3774243.html

你可能感兴趣的文章
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
shell判断网络主机存活
查看>>
根据时间戳,增量同步数据的解决办法
查看>>
03 SeekBar 音频播放拖拽进度条
查看>>
自定义view实现阻尼效果的加载动画
查看>>
清北学堂的小技巧和小收获
查看>>
模型压缩方向一个很牛的paper
查看>>
Android--AsyncTask异步加载详解
查看>>
YARN学习总结
查看>>
C#基础温习(2):温习控制台程序(二)
查看>>
一些文章
查看>>
注解@ResponseBody的作用
查看>>
java main函数不执行?
查看>>
iOS 更好用的打Log方式-显示文件名、行数
查看>>
从MS SQL删除大数据说开去
查看>>
NOVO SOP (SOP简介及历史)
查看>>
windows7+docker添加php扩展
查看>>
V2019 Super DSP3 Odometer Correction Vehicle List
查看>>
Python 3.X 练习集100题 05
查看>>