分析:

首先,连续选择一段必定最优...

区间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相关推荐

  1. 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 ...

  2. 【bzoj1742】[Usaco2005 nov]Grazing on the Run 边跑边吃草 区间dp

    题目描述 John养了一只叫Joseph的奶牛.一次她去放牛,来到一个非常长的一片地,上面有N块地方长了茂盛的草.我们可以认为草地是一个数轴上的一些点.Joseph看到这些草非常兴奋,它想把它们全部吃 ...

  3. bzoj 1630 2023: [Usaco2005 Nov]Ant Counting 数蚂蚁(有重复元素的组合数)

    2023: [Usaco2005 Nov]Ant Counting 数蚂蚁 Time Limit: 4 Sec  Memory Limit: 64 MB Submit: 281  Solved: 18 ...

  4. 【开心一刻】又想让马儿跑,又不给马儿吃草!

    点击上方"Java精选",选择"设为星标" 人活一世,做人做事,看透点,看淡点! 快乐是要学会分享,欢迎下方留言! 每天 08:35 更新不断,笑一笑,十年少. ...

  5. 末日生存手游黎明之路(代号:Z)明日上线:真正的末日还是跑毒吃鸡?

    代号:Z手游什么时候正式上线?从2017年开始,在经历了差不多四次删档测试之后,多人末日生存类手游黎明之路(代号:Z更名)终于要在4月26号,也就是明天安卓端正式上线发布了. 话说代号:Z的游戏模式从 ...

  6. vue2.x 在引用插件的时候,npm run dev跑正常 ,npm run build 报错vue-cli Unexpected token: punc (() [...

    这是因为,引用的插件在node_modules里,并不在vue-cli的es6编译范围内,所以语法报错,修改方法: 转载于:https://www.cnblogs.com/cynthia-wuqian ...

  7. 2.16([Usaco2005 Nov]Ant Counting)

    描述 Bessie was poking around the ant hill one day watching the ants march to and fro while gathering ...

  8. 创业路上教你怎样躲开创业陷阱

    创业路上教你怎样躲开创业陷阱 想富得流油,除了找准赚钱的新行业,最重要的或许就是认清路上埋伏的陷阱了.那些陷阱睁着大大而充满内涵的眼睛,正痴情地守望着你;而你,躲得开吗? 今天,在度过了启蒙期的中国市 ...

  9. 创业路上九个必须要躲的陷阱

    想富得流油,除了找准赚钱的新行业,最重要的或许就是认清路上埋伏的陷阱了.那些陷阱睁着大大而充满内涵的眼睛,正痴情地守望着你;而你,躲得开吗?   今天,在度过了启蒙期的中国市场继续创富,单单胆大心细恐 ...

最新文章

  1. 程序员,你就是三明治!
  2. C++接口的定义用一个实例说明 [转]
  3. 用WidgeDuino创建一个SCADA(监控与数据採集)系统
  4. SQL OVER用法
  5. java 返回两个集合_使用 java stream 获取两个集合之间的交集.差集
  6. lp3676 小清新数据结构题
  7. note同步不及时 one_Win10上OneNote 2016同步老出问题?解决方法送上
  8. MySQL实验7存储过程_mySQL(7)-存储过程
  9. The path C:\Oracle\Middleware\wlserver_10.3 contains the wrong version of WebLogic Server. Expect
  10. Oracle 补丁体系 及 opatch 工具 介绍
  11. 2020最新微信小程序学习资源汇总,包括文档、视频、系列教程、开源项目、框架!
  12. 开源软件项目常用版本号标识
  13. JUCE学习笔记08-合成器(一)振荡器与包络发生器
  14. Circuit Design 贴片晶振的区分
  15. 应届生面试技巧心得及选择工作走向的分析[gitChat首秀]
  16. 简单易懂的计算机网络相关名词的解释--集线器篇(持续更新)
  17. 中医针灸学综合练习题库【12】
  18. 日常开发中,你需要掌握的git使用报错解决
  19. 二叉查找树(重复元素情况)
  20. 基于SDK的支付接口服务端——支付宝,微信

热门文章

  1. qt 下log4cplus的使用
  2. 公共情报工具automater的基本使用
  3. qdu-凑数题(01背包)
  4. Lodop输出页面input文本框的最新值
  5. Go语言反射之值反射
  6. 修改mysql数据引擎的方法- 提高数据库性能
  7. js+dom开发第十六天
  8. aswing学习笔记4-通过调用面板中的按钮实现主界面动态切换皮肤的问题!
  9. 为什么 Java 在 25 年之后依旧如此年轻:一个架构师的看法
  10. 双十一图书大数据:金庸第1,Python第2,学霸们都买了这些书