[Usaco2005 nov]Grazing on the Run 边跑边吃草 BZOJ1742
分析:
首先,连续选择一段必定最优...
区间DP,f[i][j]表示从i开始,连续j个被吃掉了,并且,牛在i处,g[i][j]则表示在i+j-1处
f[i][j]可以从g[i+1][j]和f[i+1][j]转移,g[i][j]可以从g[i][j-1]和f[i][j-1]转移,转移方程:
f[i][j]=min(f[i+1][j]+(n-j+1)*(a[i+1]-a[i]),g[i+1][j]+(n-j+1)*(a[i+j-1]-a[i]));g[i][j]同样...
附上代码:
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <queue>
#include <iostream>
#include <set>
using namespace std;
#define N 1005
long long f[N][N],g[N][N];
int n,L,a[N];
int main()
{memset(f,0x3f,sizeof(f));memset(g,0x3f,sizeof(g));scanf("%d%d",&n,&L);for(int i=1;i<=n;i++)scanf("%d",&a[i]);sort(a+1,a+n+1);int p=lower_bound(a+1,a+n+1,L)-a;if(p!=1)f[p-1][1]=g[p-1][1]=1ll*n*(L-a[p-1]);if(a[p]>=L)f[p][1]=g[p][1]=1ll*n*(a[p]-L);for(int i=2;i<=n;i++){for(int j=1;j<=n-i+1;j++){int k=i+j-1;f[j][i]=min(f[j+1][i-1]+(n-i+1)*(a[j+1]-a[j]),g[j+1][i-1]+(n-i+1)*(a[k]-a[j]));g[j][i]=min(f[j][i-1]+(a[k]-a[j])*(n-i+1),g[j][i-1]+(a[k]-a[k-1])*(n-i+1));}}printf("%lld\n",min(f[1][n],g[1][n]));return 0;
}
转载于:https://www.cnblogs.com/Winniechen/p/9048142.html
[Usaco2005 nov]Grazing on the Run 边跑边吃草 BZOJ1742相关推荐
- bzoj 1694 1742: [Usaco2005 nov]Grazing on the Run 边跑边吃草(DP)
1742: [Usaco2005 nov]Grazing on the Run 边跑边吃草 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 395 So ...
- 【bzoj1742】[Usaco2005 nov]Grazing on the Run 边跑边吃草 区间dp
题目描述 John养了一只叫Joseph的奶牛.一次她去放牛,来到一个非常长的一片地,上面有N块地方长了茂盛的草.我们可以认为草地是一个数轴上的一些点.Joseph看到这些草非常兴奋,它想把它们全部吃 ...
- bzoj 1630 2023: [Usaco2005 Nov]Ant Counting 数蚂蚁(有重复元素的组合数)
2023: [Usaco2005 Nov]Ant Counting 数蚂蚁 Time Limit: 4 Sec Memory Limit: 64 MB Submit: 281 Solved: 18 ...
- 【开心一刻】又想让马儿跑,又不给马儿吃草!
点击上方"Java精选",选择"设为星标" 人活一世,做人做事,看透点,看淡点! 快乐是要学会分享,欢迎下方留言! 每天 08:35 更新不断,笑一笑,十年少. ...
- 末日生存手游黎明之路(代号:Z)明日上线:真正的末日还是跑毒吃鸡?
代号:Z手游什么时候正式上线?从2017年开始,在经历了差不多四次删档测试之后,多人末日生存类手游黎明之路(代号:Z更名)终于要在4月26号,也就是明天安卓端正式上线发布了. 话说代号:Z的游戏模式从 ...
- vue2.x 在引用插件的时候,npm run dev跑正常 ,npm run build 报错vue-cli Unexpected token: punc (() [...
这是因为,引用的插件在node_modules里,并不在vue-cli的es6编译范围内,所以语法报错,修改方法: 转载于:https://www.cnblogs.com/cynthia-wuqian ...
- 2.16([Usaco2005 Nov]Ant Counting)
描述 Bessie was poking around the ant hill one day watching the ants march to and fro while gathering ...
- 创业路上教你怎样躲开创业陷阱
创业路上教你怎样躲开创业陷阱 想富得流油,除了找准赚钱的新行业,最重要的或许就是认清路上埋伏的陷阱了.那些陷阱睁着大大而充满内涵的眼睛,正痴情地守望着你;而你,躲得开吗? 今天,在度过了启蒙期的中国市 ...
- 创业路上九个必须要躲的陷阱
想富得流油,除了找准赚钱的新行业,最重要的或许就是认清路上埋伏的陷阱了.那些陷阱睁着大大而充满内涵的眼睛,正痴情地守望着你;而你,躲得开吗? 今天,在度过了启蒙期的中国市场继续创富,单单胆大心细恐 ...
最新文章
- 程序员,你就是三明治!
- C++接口的定义用一个实例说明 [转]
- 用WidgeDuino创建一个SCADA(监控与数据採集)系统
- SQL OVER用法
- java 返回两个集合_使用 java stream 获取两个集合之间的交集.差集
- lp3676 小清新数据结构题
- note同步不及时 one_Win10上OneNote 2016同步老出问题?解决方法送上
- MySQL实验7存储过程_mySQL(7)-存储过程
- The path C:\Oracle\Middleware\wlserver_10.3 contains the wrong version of WebLogic Server. Expect
- Oracle 补丁体系 及 opatch 工具 介绍
- 2020最新微信小程序学习资源汇总,包括文档、视频、系列教程、开源项目、框架!
- 开源软件项目常用版本号标识
- JUCE学习笔记08-合成器(一)振荡器与包络发生器
- Circuit Design 贴片晶振的区分
- 应届生面试技巧心得及选择工作走向的分析[gitChat首秀]
- 简单易懂的计算机网络相关名词的解释--集线器篇(持续更新)
- 中医针灸学综合练习题库【12】
- 日常开发中,你需要掌握的git使用报错解决
- 二叉查找树(重复元素情况)
- 基于SDK的支付接口服务端——支付宝,微信