JZOJ 1257 滑雪场的缆车

  • Description--
  • Input--
  • Output--
  • Sample Input--
  • Sample Output--
  • 说明--
  • 解题思路--
  • 代码--

Description–

Farmer Ron打算为他的奶牛们建造一个一部缆车,需要从山脚到山顶立若干根柱子,并用钢丝连结它们。每相邻两根柱子间都有钢丝直接相连,所有钢丝的任何一段都不能在地面之下。
为了节省建造的费用,FR希望在工程中修建尽可能少的柱子。他在准备修建缆车的山坡上选定了N个两两之间水平距离相等的点,并且测量了每个点(所在山坡)的高度H。
按照国家安全标准,相邻两根柱子间的距离不能超过K个单位长度,柱子间的钢丝都是笔直的。
FR希望你帮他计算一下,在满足下列条件的情况下,他至少要修建多少根柱子:首先,所有的柱子都必须修建在他所选定的点上,且每一段钢丝都必须高于地面或者正好跟地面相切。相邻两根柱子的距离不大于K个单位长度。当然,在第一个点与最后一个点上一定都要修建柱子。


Input–

第1行: 两个整数 N 和 K,用空格隔开
第2…N+1行: 每行包括一个正整数,第i+1行的数描述了第i个点的高度

Output–

1行, 输出一个整数,即FR最少需要修建的柱子的数目


Sample Input–

13 4
0
1
0
2
4
6
8
6
8
8
9
11
12

Sample Output–

5

说明–

2<=N<=5,000
0<=H<=1,000,000,000
1<=K<=N-1


解题思路–

要控制钢丝在地面以上


代码–

#include <iostream>
#include <cstring>
#include <cstdio>using namespace std;int n, k, fy[5005];
double nx, mx, a[5005];double cf(int x, int y)
{return (a[x] - a[y]) / (x - y); //斜率(钢丝与水平线的tangent值)
}int main()
{scanf("%d%d", &n, &k);for (int i = 1; i <= n; ++i)scanf("%lf", &a[i]);memset(fy, 0x7f, sizeof(fy));fy[1] = 1;for (int i = 2; i <= n; ++i){mx = fy[0];for (int j = i - 1; j >= max(1, i - k); --j){nx = cf(i, j);if (nx <= mx) //若nx > mx钢丝就被埋在地下了 {fy[i] = min(fy[i], fy[j] + 1);mx = nx;}}}printf("%d", fy[n]);return 0;
}

JZOJ·滑雪场的缆车【DP】相关推荐

  1. 【DP】滑雪场的缆车(jzoj 1257)

    滑雪场的缆车 jzoj 1257 题目大意 给你一座山的图(有n个间隔相同的点),现在让你从第一个点连到最后一个点,一条线的两个端点的水平距离不能大于m,且线不能通过地面,最多挨着地面,现在问你最少建 ...

  2. 【DP】【斜率】滑雪场的缆车

    L i n k Link Link J Z O J JZOJ JZOJ 1257 1257 1257 D e s c r i p t i o n Description Description 科罗拉 ...

  3. 【DP】【斜率】jzoj1257. 滑雪场的缆车

    因为数据并不是很大所以这是一个常规DP.处理一下斜率就好了.(并没有很难?) Description 科罗拉州的Farmer Ron打算为他的奶牛们建造一个滑雪场(虽然需要的设施仅仅是一部缆车).建造 ...

  4. P3100-[USACO14JAN]建造滑雪场【贪心,dp】

    正题 题目链接:https://www.luogu.org/problemnew/show/P3100 题目大意 一个空矩阵,每次可以将B∗BB*BB∗B的矩阵覆盖为RRR或者BBB. 求BBB最大是 ...

  5. [jzoj 3055] 比赛 {期望dp}

    题目 Description 有两个队伍A和B,每个队伍都有n个人.这两支队伍之间进行n场1对1比赛,每一场都是由A中的一个选手与B中的一个选手对抗.同一个人不会参加多场比赛,每个人的对手都是随机而等 ...

  6. 和某ZYC巨佬和XXY巨佬的随机挑战2总结

    前言 一切的起点在那个炎热的酷暑,菜的一批的WYCWYCWYC坐在最容易被∗*∗的左下角.这时他永远都想不到,他与巨佬之间的挑战,即将开始. 正题 规则 随机跳333到蓝题,然后写完. 完成记录 题目 ...

  7. 纪中B组模拟赛总结(2019.12.21)

    (因为是两人一号,所以不方便显示成绩就不打了) 总结: 今天竟有四道题!!! T1看过之后,想了大概10分钟然后想了出来,就是一个单调栈,不算特别难 T2一开始想到大模拟,但是下坡的情况没法处理,后来 ...

  8. 字体的故事之:Arial 无处不在

    Arial 是一款由 Robin Nicholas 和 Patricia Saunders 于 1982 年设计的 sans serif 字体.在计算机中,Arial 是最常用的标准英文字体(英文 A ...

  9. 【DP】小学生语文题(jzoj 5102)

    正题 jzoj 5102 题目大意 给你两个串A,B,字母个数相等,可以把B的一个字符移到前面某个位置,问你最少移多少次可以使A,B相等 解题思路 设fi,jf_{i,j}fi,j​为A匹配了i-n, ...

最新文章

  1. React Native开发之必备React基础
  2. 复杂个人信息输出程序python_Python高级技巧:用一行代码减少一半内存占用
  3. Across the universe
  4. AS导入第三方库方法和PullToRefresh的简单使用
  5. 如何查看服务器并发请求连接数
  6. mysql5.7.26修改账号密码_修改mysql5.7的用户密码
  7. C语言爬虫程序,simspider
  8. [Ruby] 类和容器
  9. 手工清除Windows服务器上的Steam挖矿病毒:HackTool/CoinMiner.a及Trojan/Miner.ac
  10. 浅谈文字编码和Unicode(上)
  11. 一文理解 JWT、JWS、JWE、JWA、JWK、JOSE
  12. 设置linux服务器同步时间
  13. Android之ContextMenu的使用方法以及与OptionMenu的区别
  14. 关于服务器的使用——深度学习菜鸡入门(1)
  15. 计算机培训什么语言较好,学什么编程语言比较好
  16. SAP 关于SAP中的记账码的解释
  17. anaconda怎么运行python程序_Python中四种运行其他程序的方式,你知道吗?
  18. python实现修改桌面壁纸
  19. 玩转华为ENSP模拟器系列 | 配置VTY用户界面的最大个数
  20. C# 手机点菜带后台管理系统

热门文章

  1. 粒子群算法中的罚函数matlab,第18章基于罚函数的粒子群算法的函数寻优范例.ppt...
  2. 华滋先生:在家做什么可以挣钱?什么都不懂怎么开始创业?
  3. 2023年能源与环境工程国际研讨会(CoEEE 2023)
  4. Java(基础)工厂方法(FactoryMethod)
  5. Python的IPy模块
  6. spring官网翻译
  7. android+高仿+日历,android高仿钉钉和小米的自定义日历控件(支持阴历和阳历,左右无限翻页viewpager)...
  8. Spark原理篇之工作原理
  9. 菲氏微积分的徒子徒孙,一代不如一代,最后趋于零!
  10. 让Courier New字体完美显示中文