## [JZOJ]2109 清兵线 题解
**FIRST 题目大意**
给你一些正整数,这些正整数为数轴上若干个点代表的数。现求:假设从原点出发,走m以内(包括m)的距离最多能够访问多少个点,输出m-每个点到达时已经走过的距离的累加和。
****
**NEXT 前置结论**
![P1](https://img-blog.csdnimg.cn/20201006204224958.png#pic_center)
如图所示,首先我们假设数轴上有x,y两点,杀一个士兵的时间是$t_i$
∵$t_i \equiv 0$
∴**不存在**从远点跳过点$y$直接奔向点$x$存在最优解的可能性
****
**AFTER THAT 解题思路**
**40分思路**
排序+基于前置结论,进行dfs,普通可得40分,再优化一下可能能拿60分
**100分思路**
排序+动态规划
为了方便取,从小到大排序
既然不可能出现中间为断点的情况
那么我们想要最优解,我们已经死亡的士兵就一定是一个**区间**
状态易设:
$f_{i,j,0}$表示区间$i$~$j$全部已经被杀死了,当前状态杀死的是$i$(左边)最大值
$f_{i,j,1}$表示区间$i$~$j$全部已经被杀死了,当前状态杀死的是$j$(右边)最大值

可得一个大概的转移式:
$f_{i,j,0} = max(f_{i+1,j,0}+m-X,f_{i+1,j,1}+m-Y)$
$f_{i,j,1} = max(f_{i,j-1,0}+m-X,f_{i,j-1,1}+m-Y)$
现在我们就是要求这个 $X,Y$分别是多少(即损耗时间)
我们可以尝试转换一个思路:

即假设你要杀$k$个人,已经杀了$x$个,那么你每走$1$步,另外的生命值都-1.即总可以获得的收益减少了$(k-x)$
走$t$步同理$t(k-x)$
带入原式得
$X=(a_{i+1}-a_i) \cdot (k-j+i)$
$Y=(a_{j}-a_i) \cdot (k-j+i)$
由于$K$没有,那我们直接枚举就完事了。
***
**In The End**

1. 如果a数组里没有原点我们要补一个原点进去一起排序
2. 要注意$f$数组的特判和初始值
3. 如果$j-i+1>k$请及时break

[JZOJ]2109 清兵线 题解的更多相关文章

  1. 【JZOJ】3490. 旅游题解报告

    题目 思路 这道题看上去就像一个动态规划!但是还是要把矩阵压成一行. 然后按 \(A\)数组 将结构体从小到大排个序. 随后我们开始了动规标准步骤: 确定状态 很显然, \(f_i\) 表示游览完第\ ...

  2. [JZOJ A组]球 题解

    球(ball) [问题描述] 小 T 有 n 个桶和 2n − 1 个球,其中第 i 个桶能装前 2i − 1 个球.每个桶只能装一个球. 现在小 T 取了 m 个桶和 m 个球,并将这些球各自放在 ...

  3. Educational Codeforces Round 25 B. Five-In-a-Row

    题目链接:http://codeforces.com/contest/825/problem/B B. Five-In-a-Row time limit per test 1 second memor ...

  4. MOBA游戏学会这些知识,你才算真的入门了!

    <英魂之刃口袋版>是一个标准的MOBA游戏,MOBA指的是多人在线战术竞技游戏,游戏模式始于1998年<星际争霸>中的一张自定义地图,经过近20年的优化和调整逐渐演变成了我们现 ...

  5. upc组队赛6 Greeting Card【打表】

    Greeting Card 题目描述 Quido plans to send a New Year greeting to his friend Hugo. He has recently acqui ...

  6. 题解 [APIO2014]连珠线

    题解 [APIO2014]连珠线 题面 解析 首先这连成的是一棵树啊. 并且\(yy\)一下,如果钦定一个根, 那么这上面的蓝线都是爸爸->儿子->孙子这样的,因为像下图这样的构造不出来: ...

  7. Newcoder 华华给月月出题(线筛)题解

    题目描述: 华华刚刚帮月月完成了作业.为了展示自己的学习水平之高超,华华还给月月出了一道类似的题: Ans=⊕Ni=1(iNmod(109+7))Ans=⊕i=1N(iNmod(109+7)) ⊕⊕符 ...

  8. 【题解】洛谷P1169 [ZJOI2007] 棋盘制作(坐标DP+悬线法)

    次元传送门:洛谷P1169 思路 浙江省选果然不一般 用到一个从来没有听过的算法 悬线法: 所谓悬线法 就是用一条线(长度任意)在矩阵中判断这条线能到达的最左边和最右边及这条线的长度 即可得到这个矩阵 ...

  9. 51 Nod 1107 斜率小于0的连线数量 (转换为归并求逆序数或者直接树状数组,超级详细题解!!!)

    1107 斜率小于0的连线数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题   二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线 ...

随机推荐

  1. 使用python制作趣味小游戏—投骰子

    1.模拟真实环境掷骰子 从Python标准库中调用模块:random——random中包含以各种方式生成随机数的函数 从random中引用randint这一函数——骰子都是有固定面数 from ran ...

  2. 喵的Unity游戏开发之路 - 互动环境(有影响的运动)

    如图片.视频或代码格式等显示异常,请查看原文: https://mp.weixin.qq.com/s/Sv0FOxZCAHHUQPjT8rUeNw 很多童鞋没有系统的Unity3D游戏开发基础,也不知 ...

  3. 牛客多校训练AFJ(签到)

    题目链接https://ac.nowcoder.com/acm/contest/881/A(单调栈) #include<cstdio> #include<iostream> # ...

  4. ElasticsSearch初装 环境Win10

    步骤: 1.从 http://how2j.cn/frontdownload?bean.id=1694 下载6.22 版本 2.双击elasticsearch.bat启动ElasticsSearch [ ...

  5. LAMP 和 LNMP

    #0x01 组成: LAMP==Linux+Apache+Mysql+PHP LNMP==Linux+Nginx+Mysql+PHP LANMP==linux + nginx + apache + m ...

  6. Linux:网络基础配置

    一.修改主机名 hostname 查看主机名 1.hostname   zy 修改主机名为zy,临时生效,重新登录系统生效. 2.想要永久修改,,需修改配置文件:  vi   /etc/sysconf ...

  7. Win10更新后蓝牙出现故障的解决方法

    昨天Win10自动更新后,我发现我的键盘突然就不管用了,检查了一下发现原来蓝牙没有打开,同时任务栏中的蓝牙图标也不见了. 不久之前,这样的情况已经出现过了一次,那次好像更新系统后就好了,但这次是系统更 ...

  8. 吴恩达《深度学习》-第五门课 序列模型(Sequence Models)-第三周 序列模型和注意力机制(Sequence models & Attention mechanism)-课程笔记

    第三周 序列模型和注意力机制(Sequence models & Attention mechanism) 3.1 序列结构的各种序列(Various sequence to sequence ...

  9. JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法

    Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制.它提供了很 ...

  10. ES6 数组方法库

    文章目录 多维数组降维成一维数组 reduce() 回调 flat() 多维数组降维成一维数组 reduce() var arr1 = [[0, 1], [2, 3], [4, 5]]; var ar ...