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. BZOJ 1211[HNOI2004]树的计数 - prufer数列

    描述 一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi) ...

  2. laravel配置路由出现404

    nginx配置上加一句话 location / { #try_files $uri $uri/ =; try_files $uri $uri/ /index.php?$query_string; }

  3. 电商类Web原型制作分享-IKEA

    IKEA是一个家居整合大型零售商,属于电商类官网.电商以展示商品.售后服务.购物流程为主.根据网站的图文方式排版,主导航栏使用的标签组,区域导航栏使用的是垂直选项卡,实现下拉弹出面板交互的功能. 本原 ...

  4. common常用到的类

    org.apache.commons.codec.digest.DigestUtils.md5Hex(String)    md5

  5. Django入门与实践-第23章:分页实现(完结)

    http://127.0.0.1:8000/boards/1/ #从现在起,我们将在 board_topics 这个视图中来操作. python manage.py shell from django ...

  6. 制作一个导航卫星绕地球转动的3D Flash动画

    为便于了解卫星发射以及绕地球运转的过程,制作此动画.

  7. Android APK反编译步骤

    反编译步骤 1.通过Android Killer 打开apk,自动开始分析   2.分析结束后,在分析好的工程上右键->打开方式->打开文件位置     在文件夹ProjectSrc中有文 ...

  8. (线段树模板)A Simple Problem with Integers --POJ--3468

    链接: http://poj.org/problem?id=3468 代码: #include<stdio.h> #include<algorithm> #include< ...

  9. 20145234黄斐《java程序设计》第六周

    教材学习内容总结 第十章:输入与输出 InputStream与OutputStream 流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而言的 InputStream与Output ...

  10. c++ 内联函数 (讲解的TM真好)

    1.  内联函数 在C++中我们通常定义以下函数来求两个整数的最大值: 复制代码 代码如下: int max(int a, int b) {  return a > b ? a : b; } 为 ...