【luogu】 P1880 石子合并
原题原题原题原题原题
先贴上错误代码。。。
↓错误代码↓
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int f[1100][1100],f2[1100][1100],st[1100],a[1100];
int main()
{
memset(f,127,sizeof(f));
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
a[i+n]=a[i];
st[i]=st[i-1]+a[i];
}
for(int i=n+1;i<=2*n;i++)
st[i]=st[i-1]+a[i];
for(int i=1;i<=n+n;i++)
f[i][i]=0,f2[i][i]=0;
for(int l=1;l<=n;l++)
for(int i=1;l+i<=n+n;i++)
{
int j=i+1; //第N次把“l”(英文字母)和“1”(阿拉伯数字)搞混
for(int k=i;k<=j-1;k++)
{
f2[i][j]=max(f2[i][j],f2[i][k]+f2[k+1][j]+st[j]-st[i-1]);
f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+st[j]-st[i-1]);
}
}
int maxn=f2[1][n];
int minn=f[1][n];
for(int i=1;i<=n;i++)
{
maxn=max(minn,f2[i][i+n-1]); //max函数里写minn,真的不知道怎么想的,我发誓再也不直接复制粘贴了
minn=min(minn,f[i][i+n-1]);
}
cout<<minn<<endl<<maxn;
return 0;
}
↑错误代码↑
错误原因已经注释了,40分
———————————————————分—————割—————线—————————————————————
经过一番检查,发现了这些智障错误,感到自己都惊呆了
↓正确代码↓
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int f[1100][1100],f2[1100][1100],st[1100],a[1100];
int main()
{
memset(f,127,sizeof(f));
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
a[i+n]=a[i];
st[i]=st[i-1]+a[i];
}
for(int i=n+1;i<=2*n;i++)
st[i]=st[i-1]+a[i];
for(int i=1;i<=n+n;i++)
f[i][i]=0,f2[i][i]=0;
for(int l=1;l<=n;l++)
for(int i=1;l+i<=n+n;i++)
{
int j=i+l;
for(int k=i;k<=j-1;k++)
{
f2[i][j]=max(f2[i][j],f2[i][k]+f2[k+1][j]+st[j]-st[i-1]);
f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+st[j]-st[i-1]);
}
}
int maxn=f2[1][n];
int minn=f[1][n];
for(int i=1;i<=n;i++)
{
maxn=max(maxn,f2[i][i+n-1]);
minn=min(minn,f[i][i+n-1]);
}
cout<<minn<<endl<<maxn;
return 0;
}
↑正确代码↑
满分
【luogu】 P1880 石子合并的更多相关文章
- luogu P1880 石子合并
题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...
- P1880 石子合并
P1880 石子合并 题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计 ...
- 【洛谷】P1880 石子合并
P1880 石子合并 题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计 ...
- 经典DP 洛谷p1880 石子合并
https://www.luogu.org/problemnew/show/P1880 题目 题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新 ...
- [luogu 1880]石子合并
题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...
- 洛谷P1880 石子合并(环形石子合并 区间DP)
题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...
- 洛谷P1880 石子合并(区间DP)(环形DP)
To 洛谷.1880 石子合并 题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1 ...
- luogu P1880石子归并
石子归并 luogu1880 传送门 noi1995 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得 ...
- 洛谷 P1880 石子合并
题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...
随机推荐
- silverlight 流程设计器,流程引擎
(图一流程设计器包含元素) (图一流程设计器实现功能) (流程引擎工作原理) (流程数据库设计) (流程数据库设计) (流程数据库设计) (工作流程设计器实现效果图) (代码结构图) 无法上传附件,需 ...
- 解决 odoo.py: error: option --addons-path: The addons-path 'local-addons/' does not seem to a be a valid Addons Directory!
情况说明 odoo源文件路径-/odoo-dev/odoo/: 我的模块插件路径 ~/odoo-dev/local-addons/my-module 在my-module中创建了__init__.py ...
- sh 测试网段在线主机
yum install nmap nmap -sP 192.168.21.1/24 查看网段在线主机 grep -vwf file1 file2 文件内容比较 #!/bin/bash # day=` ...
- IBM Z上邮件服务器的配置相关内容
https://www.ibm.com/support/knowledgecenter/SSLTBW_1.13.0/com.ibm.zos.r13.halz002/sen.htm#sen 每次搜太费劲 ...
- JQuery UI dialog 弹窗实例及参数说明
按钮代码: <a id="suprise" style="margin-left: 0.5em;cursor:pointer;">点我会有惊喜< ...
- 转 centos虚拟机环境的构建。
转自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/03/31/CentOs.html 一.前言 作为一个想从事j2ee后台开发的程序猿,l ...
- elasticsearch5.0.0 安装插件及配置过程
elasticsearch5.0.0 安装插件及配置过程 由于es5.0是里程碑式的更新,所以很多变化的地方,暂时我就插件安装遇到的问题记录一下. 插件安装命令 2.3版本的安装命令 安装Marvel ...
- SQL谜题(楼层谜题)
Multiple DwellingsBaker, Cooper, Fletcher, Miller and Smith live on different floors of an apartment ...
- SQL 谜题(硬币的组合)
问题:早在ITPUB中看过有个SQL高手,喜欢出谜题,以下是一个谜题.我试用SQL SERVER解决此问题. 用1分,5分,10分,25分,50分硬币凑成一元,总共有几种组合办法? SELECT'1* ...
- 安装hadoop+zookeeper ha
安装hadoop+zookeeper ha 前期工作配置好网络和主机名和关闭防火墙 chkconfig iptables off //关闭防火墙 1.安装好java并配置好相关变量 (/etc/pro ...