博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
石子归并
阅读量:5359 次
发布时间:2019-06-15

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

1、题目大意:N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。n<=100

n^3

#include
using namespace std;int n;int a[1010];int f[1010][1010];int main(){ cin>>n; for(int i=1;i<=n;++i)cin>>a[i]; for(int i=1;i<=n;++i)a[i]+=a[i-1]; for(int len=2;len<=n;++len) for(int i=1;i<=n-len+1;++i){ int j=i+len-1; f[i][j]=1<<30; for(int k=i;k
View Code

2、题目大意:N堆石子摆成一个环。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。n<=1000

n^2

#include
using namespace std;int n;int a[2010];int s[2010][2010];int w[2010][2010];int f[2010][2010];int main(){ cin>>n; for(int i=1;i<=n;++i)cin>>a[i]; for(int i=1;i<=n;++i)a[i+n]=a[i]; for(int i=1;i<=n*2;++i){ s[i][i]=i; w[i][i]=a[i]; } for(int i=1;i<=n*2;++i) for(int j=i;j<=n*2;++j) w[i][j]=w[i][j-1]+a[j]; for(int len=2;len<=n;++len) for(int i=1;i<=n*2-len+1;++i){ int j=i+len-1; f[i][j]=1<<30; for(int k=s[i][j-1];k<=s[i+1][j];++k){ int tmp=f[i][k]+f[k+1][j]+w[i][j]; if(f[i][j]>tmp){ f[i][j]=tmp; s[i][j]=k; } } } int ans=1<<30; for(int i=1;i<=n;++i) ans=min(ans,f[i][i+n-1]); cout<
<
View Code

3、题目大意:N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。n<=50000

最坏n^2,大约n^1.5

#include
using namespace std;const int N=50005;int st[N];int n,t;long long ans;void combine(int k){ long long tmp=st[k]+st[k-1]; ans+=tmp; for(int i=k;i
=2&&st[j]>=st[j-2]){ int d=t-j; combine(j-1); j=t-d; }}int main(){ scanf("%d",&n); for(int i=0;i
=3&&st[t-3]<=st[t-1])combine(t-2); } while(t>1)combine(t-1); printf("%lld\n",ans); return 0;}
View Code

 

转载于:https://www.cnblogs.com/117208-/p/5369857.html

你可能感兴趣的文章
1、Python基础
查看>>
Unity The Tag Attribute Matching Rule
查看>>
试着理解下kvm
查看>>
WebService学习总结(二)--使用JDK开发WebService
查看>>
Tizen参考手机RD-210和RD-PQ
查看>>
竞价广告系统-位置拍卖理论
查看>>
策略模式 C#
查看>>
[模板]树状数组
查看>>
[HDU 6447][2018CCPC网络选拔赛 1010][YJJ's Salesman][离散化+线段树+DP]
查看>>
设计模式学习的好方法
查看>>
感谢Leslie Ma
查看>>
几种排序方法
查看>>
查看数据库各表的信息
查看>>
第一阶段测试题
查看>>
第二轮冲刺第五天
查看>>
图片压缩
查看>>
Hadoop-2.6.5安装
查看>>
[poj-2985]The k-th Largest Group_Treap+并查集
查看>>
2018年移动用户界面的三种最潮趋势
查看>>
小甲鱼python视频第三讲(课堂笔记)
查看>>