题意:

有n个人排队,第i个入场的人x的不愉快度是$D_x*(i-1)$,现在给你n个人在队伍中的位置,

你可以用一个栈让一个人后面的人先进入,问最小的不愉快度是多少。

解法:

考虑注意到用栈调整次序时,如果$x_1$从$l$调整到了$r$的位置,那么如果有$x_2$的位置在$l$,

$r$之间那么一定要满足$l<l_2<=r_2<r$。

这样考虑dp:

$f(i,j)$表示i到j最大可以通过调整减小多少的不愉快度,这样就可以dp了。

(注意在转移不交换的情况下$f(i,j) = max \{ f(i+1,j), f(i,j-1) \}$ 不正确,

因为这样求出来的是一个一个大区间套着小区间的答案,不能表示两个区间相互独立的情况,

应该是$f(i,j) = max \{ f(i,k)+f(k+1,j) \}$)

时间复杂度$O(n^3)$。

 #include <iostream>
#include <cstdio>
#include <cstring> #define N 110 using namespace std; int n,ans;
int D[N],f[N][N],S[N]; int main()
{
int T,Te=;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
S[]=;
ans=;
for(int i=;i<=n;i++)
{
scanf("%d",&D[i]);
S[i]=S[i-]+D[i];
ans+=(i-)*D[i];
}
for(int i=;i<=n;i++) f[i][i]=;
for(int d=;d<=n;d++)
{
for(int i=;i<=n-d+;i++)
{
int j=i+d-;
f[i][j]=;
for(int k=i;k<j;k++)
f[i][j] = max(f[i][j], f[i][k]+f[k+][j]);
f[i][j] = max(f[i][j], f[i+][j]+S[j]-S[i]-D[i]*(j-i));
}
}
printf("Case #%d: %d\n",++Te,ans-f[][n]);
}
return ;
}

随机推荐

  1. Failure [INSTALL_FAILED_ALREADY_EXISTS]

    1.发生原因 做unity开发的同事说apk无法安装,要我帮忙看下,然后我通过命令adb install安装apk,出现此提示 2.解决过程 首先想到的仍然是安装包已存在的问题,结果使用清理类软件清理 ...

  2. Cocos2d-x 3.0final 终结者系列教程15-win7+vs2012+adt+ndk环境搭建(无Cygwin)

    最终不用Cygwin 了.非常高兴 为什么要用Win7? 由于VS2012要求Win7以上系统才干安装! 为什么要用vs2012? 由于VS2012才支持C++11! 为什么要支持C++11? 由于C ...

  3. 阿里云OSS对象存储 简单上传文件

    不得不说阿里云的命名比较让人摸不着头脑,开始以为是文件存储NAS,弄了半天什么文件系统,挂载点的搞不明白.后来才搞清楚原来 对象存储OSS才是我需要的. 其中EndPoint就是画红框的部分,但是要加 ...

  4. 如何打造你的独特观点(一) ——形成“自己的想法”的基础课zz

    信息过载的时代,能在各种KOL的声音中保持独立思考很不容易,能输出独特观点又进一层.不断练习我们独立思考的能力,有助于看清周围复杂的事物,也能让我们在日常生活中给人留下“有趣之人”的印象,提升人际交往 ...

  5. API网关如何实现对服务下线实时感知

    上篇文章<Eureka 缓存机制>介绍了Eureka的缓存机制,相信大家对Eureka 有了进一步的了解,本文将详细介绍API网关如何实现服务下线的实时感知. 一.前言 在基于云的微服务应 ...

  6. javascript 连续赋值(转载)

    先看一个例子   ● var a = {n:1}; ● var b = a; ● a.x = a = {n:2}; ● console.log("a.x: " + a.x); // ...

  7. Linux 中权限的再讨论( 上 )

    前言 在Linux系统中,用户分为三个部分( 所有者 同组人 其他 ).每个部分的权限又可以赋予读/写/执行权限.这样,文件的权限标记一共包含 9 个权限位.好了,很多朋友对于Linux权限的了解就仅 ...

  8. ZeroClipboard—ZeroClipboard的使用

    1.ZeroClipboard的作用: 借助Zero Clipboard能够简单高速地将内容拷贝到剪贴板,相似点击某些网页中"复制"按钮后复制对应区域的内容. 2.ZeroClip ...

  9. input光标位置

    兼容谷歌火狐-input光标位置 input框在没有添加任何效果的情况下,输入文字后光标始终在最后的位置,谷歌||火狐效果一样 但是在给input加入点击事件后 谷歌:input框插入文字后,光标会自 ...

  10. ssemble JavaBeans components into an application without having to write any code

    https://docs.oracle.com/javase/tutorial/javabeans/ https://docs.oracle.com/javase/tutorial/javabeans ...