You Are the One
题意:
有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 ;
}
随机推荐
- mysql 加密解密函数
http://blog.csdn.net/wh62592855/article/details/6777753 mysql下的加密函数有如下几个 PASSWORD():创建一个经过加密的密码字符串,适 ...
- 笔记09 saveFileDialog
C# saveFileDialog用法: #region 保存对话框private void ShowSaveFileDialog(){//string localFilePath, fileName ...
- krpano HTML5 Viewer可以实现全景展示
http://www.krpano360.com/ krpanp 陀螺仪调取 全景展示
- OcelotAPI 简单使用—服务发现、流控
我这人比较懒 直接上配置文件的图 其中serviceName是服务名称, LoadBalancer是负载均衡策略. 对于流控我为了做测试写的1s 限制5次请求. 剩下的看名字就OK了. 要使用服务发现 ...
- 游戏开发之基础图像---3d图像处理
http://dev.gameres.com/Program/Visual/3D/3Darit.htm float 类型数据有效数字是小数点后面6位 单精度 doluble 类型数据是至少10位,双精 ...
- redis文档翻译_LRU缓存
Using Redis as an LRU cache使用Redis作为LRU缓存 出处:http://blog.csdn.net/column/details/redisbanli.html Whe ...
- 编写灵活、稳定、高质量的 HTML 和 CSS 代码的规范。
引用地址http://codeguide.bootcss.com/#html-ie-compatibility-mode <!DOCTYPE html> <html lang=& ...
- 【WordSearch】Word Search
Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...
- Python pip源,解决安装慢的问题
经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的 ...
- CSS3学习笔记(3)—左右飞入的文字
前几天看到一个企业招聘的动画觉得很炫,里面有个企业介绍的文字是用飞入的效果做出来的,今天尝试了写了一下,感觉还不错~\(≧▽≦)/~啦啦啦 下面来看我做的动态效果: 其实上面的效果很简单的,我的截图软 ...