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 ...
随机推荐
- IE8不支持数组的indexOf方法 如何解决
转自:http://www.jbxue.com/article/8367.html 原因分析: 这是一个js bug, 在IE8下,js数组没有indexOf方法,会报错:而在其它浏览器下(Firef ...
- OCI 编程
一.环境的配置 1.系统环境:要想使用OCI编程需要安装Oracle的客户端,而这个普通的客户端比较大,方便起见,可以安装即时客户端(Instantclient)作为Oracle的访问客户端. 具体 ...
- UI交互设计教程分享:提高界面交互体验的“葵花宝典”
本次分享的是在界面设计中最长实用也最容易被忽略的十个原则,就是尼尔森十大可用性设计原则,这是十分基础且重要的原则.原则是死的,如何正确的结合到实际运用中才是关键.接下来我会通过对每一个原则的理解和现 ...
- html 5 如何限制上传的文件类型 (uploadifive)
可以直接设置input标签的accept属性来限制上传文件的类型 <input type="file" accept="application/msword&quo ...
- htmlparser学习(原创)
--thumbelina.jar 这是一个演示图片搜索和显示的小程序JFrame Preferences.userNodeForPackage(getClass()); 根据传入的class所在包 ...
- vue路由组件传参
在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性. 使用 props 将组件和路由解耦: 取代与 $route 的耦合 const ...
- div和span元素的区别
2个都是用来划分区间但是没有实际语义的标签,差别就在于div是块级元素,不会其他元素在同一行;span是内联元素,可以与其他元素位于同一行. DIV 和 SPAN 元素最大的特点是默认都没有对元素内的 ...
- QQ使用技巧
1.改变真实地理位置 大家知道,现在很多QQ都是显示IP和地理位置的版本,这样一来,自己的位置就暴露了.其实想隐藏自己的位置也简单,只要用代理服务器就是了.不要把它看成很复杂的东西,建议去下载&quo ...
- 2018.10.14 loj#6012. 「网络流 24 题」分配问题(费用流)
传送门 费用流水题. 依然是照着题意模拟建边就行了. 为了练板子又重新写了一遍费用流. 代码: #include<bits/stdc++.h> #define N 305 #define ...
- 2018.09.29 bzoj3166: [Heoi2013]Alo(01trie+双向链表)
传送门 01trie经典题目. 我们可以通过计算每个数作为次小值时对答案的贡献. 显然对于每个iii需要求出一个包含a[i]a[i]a[i]且的区间[l,r][l,r][l,r]且区间所有值都小于a[ ...