1761: [Baltic2009]beetle

Time Limit: 4 Sec  Memory Limit: 64 MB
Submit: 255  Solved: 92
[Submit][Status][Discuss]

Description

在一条直线上有N个点,每个点M升水.
一个虫子在坐标轴0点上,它每个单位时间移动一格,每个点的水每单位时间消失1升.
问虫子最多可以喝到多少水,喝水的时间忽略不计

Input

第一行给出数字N,M
下面N行给出N个点的坐标Xi
0 ≤ n ≤ 300, 1 ≤ m ≤ 1,000,000, −10,000 ≤ x1, x2, . . . , xn ≤ 10,000,

Output

最多可以喝到多少水

Sample Input

3 15
6
-3
1

Sample Output

25

HINT

虫子开始在0点,它先到1这个点喝水,再到-3,再到6.

  

  走一步产生的损失等于剩下没有喝的位置总数,则另f[x][y][p]表示左端点x,右端点y,当前在x/y位置,最小损失为多少,转移的时候为了处理水量不能减成负数的问题,需要在枚举最终要喝多少个位置。

  4s O(n^3)有一点常数问题。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define MAXN 310
#define INFL 0x3f3f3f3f3f3f3f3fLL
typedef long long qword;
int a[MAXN];
qword dp[MAXN][MAXN][];
qword dis[MAXN][MAXN];
inline void deal(qword &x,qword y)
{
x=min(x,y);
} int main()
{
freopen("input.txt","r",stdin);
int n,m;
scanf("%d%d",&n,&m);
for (int i=;i<n;i++)
scanf("%d",a+i);
a[n++]=;
qword ans=-INFL;
sort(a,a+n);
for (int i=;i<n;i++)
for (int j=;j<n;j++)
dis[i][j]=abs(a[i]-a[j]);
int x=lower_bound(a,a+n,)-a;
for (register int tot=;tot<=n;tot++)
{
memset(dp,0x3f,sizeof(dp));
dp[x][x][]=;
for (register int i=;i<=tot;i++)
{
for (register int j=;j+i-<n;j++)
{
if (dp[j][j+i-][]<INFL)
{
if (j)
deal(dp[j-][j-+(i+)-][],dp[j][j+i-][]+dis[j][j-]*(tot-i));
if (j+i-<n-)
deal(dp[j][j+(i+)-][],dp[j][j+i-][]+dis[j][j+(i+)-]*(tot-i));
}
if (dp[j][j+i-][]<INFL)
{
if (j)
deal(dp[j-][j-+(i+)-][],dp[j][j+i-][]+dis[j+i-][j-]*(tot-i));
if (j+i-<n-)
deal(dp[j][j+(i+)-][],dp[j][j+i-][]+dis[j+i-][j+(i+)-]*(tot-i));
}
}
}
for (int j=;j+tot-<n;j++)
{
ans=max(ans,(qword)m*(tot-)-min(dp[j][j+tot-][],dp[j][j+tot-][]));
}
}
printf("%lld\n",ans);
}

bzoj 1761: [Baltic2009]beetle 区间dp的更多相关文章

  1. BZOJ 1260&UVa 4394 区间DP

    题意: 给一段字符串成段染色,问染成目标串最少次数. SOL: 区间DP... DP[i][j]表示从i染到j最小代价 转移:dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k ...

  2. BZOJ 2933([Poi1999]地图-区间Dp)

    2933: [Poi1999]地图 Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 7   Solved: 7 [ Submit][ Status] ...

  3. BZOJ 1055 玩具取名(区间DP)

    很显然的区间DP,定义dp[i][j][k], 如果dp[i][j][k]=1表示字符串[i,j]可以组成k字符. # include <cstdio> # include <cst ...

  4. bzoj 1068 [SCOI2007]压缩 区间dp

    [SCOI2007]压缩 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 1644  Solved: 1042[Submit][Status][Discu ...

  5. BZOJ 2121: 字符串游戏 区间DP + 思维

    Description BX正在进行一个字符串游戏,他手上有一个字符串L,以及其他一些字符串的集合S,然后他可以进行以下操作:对 于一个在集合S中的字符串p,如果p在L中出现,BX就可以选择是否将其删 ...

  6. bzoj 1003物流运输 区间dp+spfa

    基本思路: 一开始确实没什么思路,因为觉得怎么着都会超时,然后看一下数据范围,呵,怎么都不会超时. 思路: 1.看到能改变线路,想到可以用以下区间dp,区间dp的话,先枚举长度,枚举开始位置,然后枚举 ...

  7. bzoj 1564 [NOI2009]二叉查找树 区间DP

    [NOI2009]二叉查找树 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 906  Solved: 630[Submit][Status][Discu ...

  8. BZOJ 1090 字符串折叠(区间DP)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1090 题意:字符串AAAAAAAAAABABABCCD的最短折叠为9(A)3(AB)CC ...

  9. BZOJ 2298 problem a(区间DP)

    题意:一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) 思路:考虑最多有多少人说真,那么答案就是n-max. ai个人分数 ...

随机推荐

  1. asp遇到的一些问题

    1.伪静态问题...后台设置支持, 2.数据库链接错误,也就是说  .net 功能冲突,要后台关闭 3.本机也可以设置 iis服务器 win7配置自己的IIS服务器亲自做的图文很详细 http://j ...

  2. jQuery动态实现title的修改 失效问题

    最近做了一个网站,一切都很顺利,在上线的时候,突然发现一个严重的问题,开始面对这个问题,完全不知所措(在goole.火狐.IE9及其以上都没得问题:IE8及其低版本都失效)只是浏览器弹出一个bug,但 ...

  3. 安装tensorflow

    官网:http://tensorflow.org/安装步骤:1.sudo apt-get install python-pip python-dev python-virtualenv 3    co ...

  4. iOS开发篇-申请开发者账号流程

    1.注册一个苹果的apple id申请apple id的地址: https://appleid.apple.com/account 2.如申请公司账号,请使用以下链接免费获取邓白氏号码,以下的申请表格 ...

  5. Web网站与Web应用程序区别

    创建时的目录结构不同. WEB应用程序一般处理程序有命名空间,而网站中的没有.(因为应用程序最后要编译成一个DLL文件,会产生命名冲突,而网站每个页面会编译成每一个的DLL,不会文件内产生全名冲突). ...

  6. js数组&&字符串&&定时器1

    一.简单计算命令eval var str="6*5"; alert(eval(str)); 注意:不安全,一般都不会去用   二.id&&name id:只能唯一 ...

  7. CSS实现背景透明,文字不透明(各浏览器兼容) (转)

    /*CSS*/ .waps{ background:url(07158.bmp) no-repeat top center fixed; width:1004px; text-align:center ...

  8. Linux基础1之磁盘与分区

    Linux上面设备皆文件,目前需要知道的,比如U盘和SARA硬盘的在Linux上面的文件名,/dev/sd[a-p].与IDE接口不同的是,SATA/USB接口的磁盘没有一定的顺序,这里就根据Linu ...

  9. 周末充电之WPF(二 ) .窗口的布局

    登录窗口布局:[ Grid 布局 -Grid.RowDefinitions / Grid.ColumnDefinitions] 代码如下: <Window x:Class="login ...

  10. mssql死锁问题

    在网上查看了很多死锁与阻塞的资料,为什么会出现死锁或者阻塞? 阻塞在大数据量的数据库中经常出现,在我现在的其中一个项目出现的频率很高,根据网上查到死锁跟阻塞的资料,当时分析出来,主要是多台设备同时调用 ...