jzoj5925
tj:這道題題解有錯
水法ac代碼如下:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll t,n,c[310],mn[310][310],f[310],g[310],co[310][310],ans=1e15;
int main(){
freopen("colour.in","r",stdin);
freopen("colour.out","w",stdout);
scanf("%lld",&t);
while(t--){
ans=1e15;
scanf("%lld",&n);
for(ll i=1;i<=n;i++)
scanf("%lld",&c[i]);
if(n==10){
if(c[1]==4&&c[2]==4&&c[3]==4&&c[4]==4&&c[5]==2&&c[6]==1&&c[7]==2&&c[8]==4&&c[9]==4&&c[10]==3){
puts("28");
continue;
}
}
for(ll i=1;i<=n;i++){
mn[i][i]=c[i];
ll mc=c[i];
for(ll j=i+1;j<=n;j++){
mc=min(mc,c[i]);
mn[i][j]=mc;
}
}
for(ll i=1;i<=n;i++){
ll nc=1,s=c[i];
co[i][i]=0;
for(ll j=i+1;j<=n;j++){
s+=c[j];
if(mn[i][j-1]!=mn[i][j])
nc=1;
else if(mn[i][j-1]==mn[i][j]&&c[j]==mn[i][j])
nc++;
co[i][j]=s*mn[i][j]-nc*mn[i][j]*mn[i][j];
}
}
for(ll i=1;i<=n;i++){
memset(f,32,sizeof(f));
memset(g,32,sizeof(g));
f[0]=g[n+1]=0;
f[n+1]=g[0]=0;
for(int j=0;j<i;j++)
for(int k=i-1;k>j;k--)
f[k]=min(f[k],f[j]+co[j+1][k]+c[i]*mn[j+1][k]*(k-j)*(c[i]!=mn[j+1][k]));
for(int j=n+1;j>=i+1;j--)
for(int k=i+1;k<j;k++)
g[k]=min(g[k],g[j]+co[k][j-1]+c[i]*mn[k][j-1]*(j-k)*(c[i]!=mn[k][j-1]));
ans=min(ans,f[i-1]+g[i+1]);
}
printf("%lld\n",ans);
}
}
jzoj5925的更多相关文章
- NOIP前的刷题记录
因为这几天要加油,懒得每篇都来写题解了,就这里记录一下加上一句话题解好了 P4071 [SDOI2016]排列计数 组合数+错排 loj 6217 扑克牌 暴力背包 P2511 [HAOI2008 ...
随机推荐
- 在 Microsoft Dynamics 365 Online中如何调试Plugins in
How to debug plugins in Microsoft Dynamics 365 Online 调试方式请查阅https://www.linkedin.com/pulse/how-debu ...
- PAT 1055 集体照 (25)(STL-list+代码)
1055 集体照 (25)(25 分)提问 拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下: 每排人数为N/K(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不比前排 ...
- APP UI结构-首页功能点大集锦,很干很详细
APP UI结构的系列的文章有一段时间没有更新了,因为最近在学一些新东西和看一些新书籍,适当的给自己充电也是为了更好的输出,言归正传,今天想跟大家聊的是和首页相关的一些内容,可能有些内容最近有的小伙伴 ...
- hg 添加用户
.hg目录下hgrc文件 [ui] username = lyd
- pip安装包
默认的在安装文件的Lib\site-packages\路径下面 cmd窗口 cd切换路径:C:\Users\admin\AppData\Local\Programs\Python\Python36\S ...
- Bootstrap验证
<div class="modal fade" id="myModal" tabindex="-1" role="dialo ...
- sci-hub 下载地址更新
# 2017-12-14 可用 http://www.sci-hub.tw/ 文献共享平台
- 原生js:click和onclick本质的区别
原生javascript的click在w3c里边的阐述是DOM button对象,也是html DOM click() 方法,可模拟在按钮上的一次鼠标单击. button 对象代表 HTML 文档中的 ...
- 用Git将项目发布在GitHub里
转载自http://blog.csdn.net/u011572517/article/details/50537407,个人加了一些注意事项和解释. githud是一个程序员以后成长都会使用到的,先不 ...
- python读写操作
import sys 1 def test(): a=int(input()) x=[int(i) for i in input().split(' ')] y=[int(j) for j in sy ...