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的更多相关文章

  1. NOIP前的刷题记录

    因为这几天要加油,懒得每篇都来写题解了,就这里记录一下加上一句话题解好了 P4071 [SDOI2016]排列计数   组合数+错排 loj 6217 扑克牌 暴力背包 P2511 [HAOI2008 ...

随机推荐

  1. 在windows系统下安装oracle 11g

     oracle 11g 安装在windows server 2012 系统下. 最近,需要配置数据库,要求在windows操作系统下,安装oracle 11g 数据库,因为以前没有安装过,所以成功后, ...

  2. rpmdb open failed的解决办法

      错误信息如下:    “错误:无法从 /var/lib/rpm 打开软件包数据库      CRITICAL:yum.main:       Error: rpmdb open failed”   ...

  3. process_进程池

    from multiprocessing import Poolimport os,timeimport multiprocessingdef func(msg): print("msg:& ...

  4. jsp 页面 摘要, 要截取字符串 ,当时 字符串中包含 html标签,截取后无法显示

    如题: 处理办法: 1.  使用struts标签 <s:property  value ="#text.replaceAll('<[^>]+>','').substr ...

  5. proc demo

    源文件test.pc #include <stdio.h> #include <string.h> #include <stdlib.h> #include &qu ...

  6. ubuntu系统下安装pyspider:搭建pyspider服务器新手教程

    首先感谢“巧克力味腺嘌呤”的博客和Debian 8.1 安装配置 pyspider 爬虫,本人根据他们的教程在ubuntu系统中进行了实际操作,发现有一些不同,也出现了很多错误,因此做此教程,为新手服 ...

  7. 2018.09.24 bzoj4977: [[Lydsy1708月赛]跳伞求生(贪心+线段树)

    传送门 线段树好题. 这题一看我就想贪心. 先把a,b数组排序. 然后我们选择a数组中最大的b个数(不足b个就选a个数),分别贪心出在b数组中可以获得的最大贡献. 这时可以用线段树优化. 然后交上去只 ...

  8. ABP框架系列之二十三:(EF-MySql-Integration-EF-MySql-集成)

    Introduction While our default templates designed to work with SQL Server, you can easily modify the ...

  9. AdapterViewFlipper功能 自动播放的图片库

    案例中有"上一个""下一个""自动播放",但是我觉得可以更加完善一下,点击自动播放,按钮变成"停止播放",在按" ...

  10. mysql图文安装教程(win7 32位 亲测)

    一.下载mysql:http://www.mysql.com/downloads/ 弹出: 你需要有一个 Oracle Web 帐户,没有的话,注册一个: 勾选许可: 输入搜索条件: 下载MySQL ...