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. Django配置Bootstrap, js

    1.首先在APP目录下创建一个static文件夹 如图: # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'dj ...

  2. jdk8 jvm配置参数说明

    这些选项是特定于Java HotSpot虚拟机的通用选项.-X 显示所有可用-X选项的帮助. -Xbatch 禁用后台编译.默认情况下,JVM将该方法编译为后台任务,以解释器模式运行该方法,直到后台编 ...

  3. script标签的type="test/html"时

    们可以在<script>片断中定义一个被JS调用的代码,但代码又不在页面上显示,这时,我们可以使用下面的方法: 1 <script id="commentTemplate& ...

  4. Codeforces Recycling Bottles 模拟

    C. Recycling Bottles time limit per test: 2 seconds memory limit per test: 256 megabytes input: stan ...

  5. 怎样完整地离线更新并升级基于 Debian 的操作系统

    不久之前我已经向你展示了如何在任意离线的 Ubuntu 和 Arch Linux 操作系统上安装软件. 今天,我们将会看看如何完整地离线更新并升级基于 Debian 的操作系统. 和之前所述方法的不同 ...

  6. [SoapUI] 通过context获取response并解析里面的某个字段的值

    import com.eviware.soapui.support.GroovyUtils def groovyUtils = new GroovyUtils( context ) def realI ...

  7. 体育类App原型制作分享-Onefootball

    Onefootball 是一款适合于足球迷的应用,提供全球 100 多项赛事的新闻.数据.比分和直播.原型中选择“喜欢的球队”这个界面中,用到了悬浮按钮,采用的是滚动区来放置需要滚动的球队列表,然后将 ...

  8. java bulid path 和 WEB-INF/lib 下jar 包区别

    用Java Build Path导入包和把包复制到lib下是有区别的,它俩其实不会冲突,也没有什么关系的, Java Build Path是我们编译需要的包, 导入到lib下是程序运行时需要的包 ,  ...

  9. js replace 用法

    /g  表示全部 global 在很多项目中,我们经常需要使用JS,在页面前面对前台的某些元素做做修改,js 的replace()方法就必不可少. 经常使用"ABCABCabc". ...

  10. 如何优化Mysql数据库

    1.添加主键ID 2.尽量避免使用select * form table 3.创建索引     对于查询占主要的应用来说,索引显得尤为重要.很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或 ...