bzoj千题计划152:bzoj3405: [Usaco2009 Open]Grazing2 移动牛棚

时间:2022-09-16 20:35:01

http://www.lydsy.com/JudgeOnline/problem.php?id=3405

n个牛棚,n-1段

因为要求距离尽量大,而且尽可能多的为d

所以:

第1个牛棚一定在位置1

最后一个牛棚一定在位置s

每段距离不是d就是d+1

有s-(n-1)*d-1段 d+1,其余段距离为d

dp[i][j] 表示前i个牛棚,有j段距离为d+1

那么第i个牛棚的位置就是d*(i-1)+j+1

第i个牛棚要么与上一个距离为d,要么距离为d-1

所以转移方程为 dp[i][j]=min(dp[i-1][j],dp[i-1][j-1])+abs(pos[i]-(i-1)*d-j-1);

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm> using namespace std; #define N 1501 int dp[N][N]; int pos[N]; void read(int &x)
{
x=; char c=getchar();
while(!isdigit(c)) c=getchar();
while(isdigit(c)) { x=x*+c-''; c=getchar(); }
} int main()
{
int n,s;
read(n); read(s);
for(int i=;i<=n;++i) read(pos[i]);
int d=(s-)/(n-);
int m=s-(n-)*d-;
sort(pos+,pos+n+);
memset(dp,,sizeof(dp));
dp[][]=pos[]-;
for(int i=;i<=n;++i)
{
dp[i][]=dp[i-][]+abs(pos[i]-d*(i-)-);
for(int j=;j<=m && j<i;++j)
dp[i][j]=min(dp[i-][j],dp[i-][j-])+abs(pos[i]-(i-)*d-j-);
}
cout<<dp[n][m];
}

bzoj千题计划152:bzoj3405: [Usaco2009 Open]Grazing2 移动牛棚的更多相关文章

  1. bzoj千题计划300:bzoj4823&colon; &lbrack;Cqoi2017&rsqb;老C的方块

    http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色 ...

  2. bzoj千题计划187:bzoj1770&colon; &lbrack;Usaco2009 Nov&rsqb;lights 燈 (高斯消元解异或方程组&plus;枚举*元)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1770 a[i][j] 表示i对j有影响 高斯消元解异或方程组 然后dfs枚举*元确定最优解 #in ...

  3. bzoj千题计划156:bzoj1571&colon; &lbrack;Usaco2009 Open&rsqb;滑雪课Ski

    http://www.lydsy.com/JudgeOnline/problem.php?id=1571 DP不一定全部全状态转移 贪心的舍去一些不合法的反而更容易转移 在一定能力范围内,肯定滑雪所需 ...

  4. bzoj千题计划196:bzoj4826&colon; &lbrack;Hnoi2017&rsqb;影魔

    http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j ...

  5. bzoj千题计划280:bzoj4592&colon; &lbrack;Shoi2015&rsqb;脑洞治疗仪

    http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...

  6. bzoj千题计划177:bzoj1858&colon; &lbrack;Scoi2010&rsqb;序列操作

    http://www.lydsy.com/JudgeOnline/problem.php?id=1858 2018 自己写的第1题,一遍过 ^_^ 元旦快乐 #include<cstdio&gt ...

  7. bzoj千题计划317:bzoj4650&colon; &lbrack;Noi2016&rsqb;优秀的拆分(后缀数组&plus;差分)

    https://www.lydsy.com/JudgeOnline/problem.php?id=4650 如果能够预处理出 suf[i] 以i结尾的形式为AA的子串个数 pre[i] 以i开头的形式 ...

  8. bzoj千题计划304:bzoj3676&colon; &lbrack;Apio2014&rsqb;回文串(回文自动机)

    https://www.lydsy.com/JudgeOnline/problem.php?id=3676 回文自动机模板题 4年前的APIO如今竟沦为模板,,,╮(╯▽╰)╭,唉 #include& ...

  9. bzoj千题计划292:bzoj2244&colon; &lbrack;SDOI2011&rsqb;拦截导弹

    http://www.lydsy.com/JudgeOnline/problem.php?id=2244 每枚导弹成功拦截的概率 = 包含它的最长上升子序列个数/最长上升子序列总个数 pre_len ...

随机推荐

  1. Neutron 理解(10):虚拟专用网(VPN)虚拟化 &lbrack;How Neutron implements VPN Virtualization&rsqb;

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  2. mysql的存储过程

    mysql5中开始引入存储过程,存储过程是一组为了完成特定功能的sql语句集,经编译后存储在数据库中. 存储过程的特点(优点): 1:减小网络通信量.调用一个行数不多的存储过程与直接高用SQL语名的网 ...

  3. Mysql数据库操作系统及配置参数优化

    数据库结构优化 表的水平拆分常用的水平拆分方法为:1.对 customer_id进行 hash运算,如果要拆分成5个表 则使用mod(customer_id,5)取出0-4个值2.针对不同的 hash ...

  4. AE实现投影定义和投影转换

    添加引用ESRI.ArcGIS.DataManagementTools 1.获取要定义和要转换的投影 IWorkspaceFactory wsf = new ShapefileWorkspaceFac ...

  5. 转&colon;Java程序员最常用的8个Java日志框架

    作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug:在 ...

  6. dvtm&colon; 平铺式终端管理器 — LinuxTOY

    dvtm: 平铺式终端管理器 — LinuxTOY LinuxTOY 是一个致力于提供 Linux 相关资讯的专题站点.如果您发现了好用好玩的 Linux 东东并愿意发扬*.分享的精神,可以点击顶部 ...

  7. 【Fungus入门】10分钟快速构建Unity中的万能对话系统 &sol; 叙事系统 &sol; 剧情系统

    我真的很久没有写过一个完整的攻略了(笑),咸鱼了很久之后还是想来写一个好玩的.这次主要是梳理一下Unity的小众插件Fungus的核心功能,并且快速掌握其使用方法. 官方文档:http://fungu ...

  8. JDK 8 函数式编程入门

    目录 1. 概述 1.1 函数式编程简介 1.2 Lambda 表达式简介 2. Lambda 表达式 2.1 Lambda 表达式的形式 2.2 闭包 2.3 函数接口 3. 集合处理 3.1 St ...

  9. WebBrowser控件的NavigateToString&lpar;&rpar;方法 参数 为中文时乱码问题的解决。

    public static string ConvertExtendedASCII(string HTML) { StringBuilder str = new StringBuilder(); ch ...

  10. eclipse中如何打开工作空间里面已经有的项目

    File->Import->打开大类General->找到小类Existing Projects info Workspace->选择Select root dirctory, ...