博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
合并石子,石子合并(环状区间DP)
阅读量:5972 次
发布时间:2019-06-19

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

#include
#include
#include
#include
#include
#include
using namespace std;int f1[300][300],f2[300][300];//数组二倍 f1 . f2int s[300];int w[300];int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&w[i]),s[i]=s[i-1]+w[i]; for(int i=n+1;i<=2*n;i++)//2*n! s[i]=s[i-1]+w[i-n]; memset(f1,127/3,sizeof(f1));// /3防止爆掉int for(int i=1;i<=2*n;i++) f1[i][i]=0,f2[i][i]=0; for(int p=1;p<=n-1;p++) for(int i=1;i<=2*n;i++)//2*n! { int j=i+p; for(int k=i;k<=j-1;k++)//从i开始。 f1[i][j]=min(f1[i][j],f1[i][k]+f1[k+1][j]+s[j]-s[i-1]), f2[i][j]=max(f2[i][j],f2[i][k]+f2[k+1][j]+s[j]-s[i-1]); } int minn=1e9,maxn=-1e9; for(int i=1;i<=n;i++) { if(minn>f1[i][i+n-1]) minn=f1[i][i+n-1]; if(maxn

注意:初始化!

(数组不要开小,要用二倍的!)

转载于:https://www.cnblogs.com/dfsac/p/6819796.html

你可能感兴趣的文章
java json格式的转换和读取
查看>>
find的命令的使用和文件名的后缀
查看>>
恢复WORD2010的默认模板2011-05-03
查看>>
Test2 unit2
查看>>
shell脚本逻辑判断,文件目录属性判断,if,case用法
查看>>
我的友情链接
查看>>
一个用了统计CPU 内存 硬盘 使用率的shell脚本
查看>>
如何恢复默认域策略和默认域控制器策略
查看>>
Nginx配置文件nginx.conf (Apache)
查看>>
jquery和JavaScript区别
查看>>
pxe方式安装gentoo
查看>>
Project Management Library项目管理甘特图控件
查看>>
MySQL存储过程详解
查看>>
解决查看框架源码时 class file editor source not found
查看>>
JDBC接口
查看>>
脏读,不可重复读,幻读
查看>>
Mysql数据库误删除数据恢复成功
查看>>
自己收藏的前端网站
查看>>
SQLSERVER排查CPU占用高的情况
查看>>
【二叉树系列】二叉树课程大作业
查看>>