bzoj1358: [Baltic2009]Beetle
来源:互联网 发布:知乎 赞同超过1000 编辑:程序博客网 时间:2024/06/16 04:55
链接
http://www.lydsy.com/JudgeOnline/problem.php?id=1358
题解
AC的人这么少?
远程膜
因为枚举了走几个点,所以每次转移的损失可以直接算出来。
不用担心水会减到零的问题,因为如果减成了负数,这个答案肯定会被一种没减成负数的答案更新掉。
如上。
代码
//动态规划#include <cstdio>#include <algorithm>#include <cstring>#define maxn 350#define inf ((long long)(1)<<40)#define ll long longusing namespace std;ll f[maxn][maxn][2], cnt, start, x[maxn], tmp[maxn], INIT, N, M;void init(){ int i, t=1; scanf("%lld%lld",&N,&M); INIT=0; for(i=1;i<=N;i++)scanf("%lld",x+i),tmp[i]=x[i],INIT=x[i]==0?M:INIT; if(!INIT)N++,tmp[N]=x[N]=0; sort(x+1,x+N+1); for(i=2;i<=N;i++)if(x[i]!=x[i-1])x[++t]=x[i]; for(i=1;i<=N;i++)if(x[i]==0)start=i;}inline void upd(ll &x, ll &y, ll t){y=min(y,x+t);}ll dp(){ ll i, j, l, ans=inf; for(l=1;l<=cnt;l++)for(i=1;i<=N-l+1;i++)f[i][i+l-1][0]=f[i][i+l-1][1]=inf; f[start][start][0]=f[start][start][1]=0; for(l=1;l<cnt;l++) for(i=1;i<=N-l+1;i++) { j=i+l-1; upd(f[i][j][0],f[i][j+1][1],(x[j+1]-x[i])*(cnt-l)); upd(f[i][j][0],f[i-1][j][0],(x[i]-x[i-1])*(cnt-l)); upd(f[i][j][1],f[i][j+1][1],(x[j+1]-x[j])*(cnt-l)); upd(f[i][j][1],f[i-1][j][0],(x[j]-x[i-1])*(cnt-l)); } for(i=1;i<=N-cnt+1;i++)ans=min(ans,min(f[i][i+cnt-1][0],f[i][i+cnt-1][1])); return ans;}int main(){ ll ans=-inf; init(); for(cnt=1;cnt<=N;cnt++)ans=max(ans,M*cnt-dp()); if(!INIT)ans-=M; printf("%lld",ans); return 0;}
0 0
- bzoj1358: [Baltic2009]Beetle
- Beetle
- 【bzoj1355】 Baltic2009
- Beetle游戏的实现
- 纠结的beetle包
- sgu150:Mr. Beetle II
- sgu150: Mr. Beetle II
- BZOJ1355: [Baltic2009]Radio Transmission
- [BZOJ1355] [Baltic2009]Radio Transmission
- 1355: [Baltic2009]Radio Transmission
- bzoj1355【Baltic2009】Radio Transmission
- 1355: [Baltic2009]Radio Transmission
- bzoj1355: [Baltic2009]Radio Transmission
- BZOJ1355: [Baltic2009]Radio Transmission
- bzoj1355: [Baltic2009]Radio Transmission
- BZOJ 1356: [Baltic2009]Rectangle
- 【bzoj1355】 [Baltic2009]Radio Transmission
- [Baltic2009]Radio Transmission题解
- Nginx
- Elasticsearch——分页查询From&Size VS scroll
- PHP检测密码长度
- PHP截取字符串
- JUnit4 中@AfterClass @BeforeClass @after @before的区别对比
- bzoj1358: [Baltic2009]Beetle
- PHP比较字符串
- 利用Apache开源组件poi-3.15导出Excel表
- PHP检索指定的关键字
- do {...} while (0) 在宏定义中的作用
- 同时兼容高低版本的setBackground跟setTextColor方法
- 欢迎使用CSDN-markdown编辑器
- PHP中检索子串出现的次数
- PHP替换子字符串