当前位置: 首页 > news >正文

描述一下网站建设的基本流程兰州网站维护公司

描述一下网站建设的基本流程,兰州网站维护公司,wordpress当前分类文章,开封市做网站的公司注意事项: 本题为"线性dp—最长上升子序列的长度"的扩展题,这里只讲贪心思路,dp去这个看。 题目: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。 但是这种导弹拦截系统有一个缺陷:虽然它…

注意事项:
本题为"线性dp—最长上升子序列的长度"的扩展题,这里只讲贪心思路,dp去这个看。

题目:
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。
但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。
某天,雷达捕捉到敌国的导弹来袭。
由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。
输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。

输入格式
共一行,输入导弹依次飞来的高度。

输出格式
第一行包含一个整数,表示最多能拦截的导弹数。
第二行包含一个整数,表示要拦截所有导弹最少要配备的系统数。

数据范围
雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000。

输入:
389 207 155 300 299 170 158 65
输出:
6
2
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;const int N = 1010;
int n;
int w[N], f[N], g[N];//最长下降子序列模板
int lis() {int res = 0;for (int i = 0; i<n; i++) {f[i] = 1;for (int j = 0; j<i; j++) {if (w[j] >= w[i]) f[i] = max(f[i], f[j] + 1);   //这里注意是>=,因为题目中说的是每一发炮弹都不能高于前一发的高度。}res = max(res, f[i]);}return res;
}int main()
{//读入int x;while (cin >> x) w[n++] = x;//dp最长下降子序列模板cout << lis() << endl;//贪心求出最多需要多少个策略, res表示链的个数。//思路是每次从第一个链开始,找到比当前值大,且在是所有链尾中最小的那个,将其替换,也就是单调下降队列的思路。//如何证明这样写,就一定保证w[i]会加在比当前导弹大且在所有链尾中最小的后面?//假设有两条链, g[1]=...x1, g[2]=...x2, 那么此时x1必定小于x2, 因为如果x2<x1, 那么g[1]应该=...x1x2。int res = 0;for (int i = 0; i<n; i++) {int k = 0;while (k < res && g[k] < w[i]) k++;g[k] = w[i];if (k >= res) res++;}cout << res << endl;return 0;
}

思路:
dp思路和最长上升子序列长度一样,不多讲。
这里着重说一下第二部分的贪心的思路。

首先猜测一下性质,根据题目所说,需要求出几套系统能够拦截所有导弹。

那也就是找到,用几个下降子序列能够完全覆盖整个数列。
可以将每个下降子序列看作一个链,完全单调下降,每遇到一个新的导弹,尝试将其放到合适的下降子序列的末尾,那怎么算是合适呢?

答案是找到当前所有链尾中,比新导弹高度更高,且是所有链尾中最小的那个。

怎么证明这个贪心思路是正确的:调整法
首先贪心答案(A), 最优解(B), 证明A >= B, B >= A,也就是A = B
A >= B:
因为贪心是一种解,所以符合A >= B.
B >= A:
当条件成立,而A != B, 说明A和B肯定有某个链是不同的,也就是在链的某个点c产生了分歧:
贪心:a1链…c…
最优:a2链…c…
而贪心的策略是将每个数放到比新导弹大,且是链尾中最小的那个后面,那就说明最优解的前一个量,是要比贪心解的前一个量要大的,那么就可以将贪心解的c替换到最优解的c的位置,而不影响链的数量,即证明了A = B

声明:
算法思路来源为y总,详细请见https://www.acwing.com/
本文仅用作学习记录和交流

http://www.yayakq.cn/news/501063/

相关文章:

  • 移动端网站怎么做手机oa办公系统下载
  • 数据来源于网站怎么做参考文献建设征婚网站
  • 零陵网站建设广州网站建设案件
  • 网站一般字体网站如何做二维码
  • 网站搭建代码大全推广软文发稿
  • 福建省建设执业注册中心网站做网站需要注意的点
  • 河南省住建厅网站官网wordpress安装完不显示
  • 建网站要去备案做淘宝客网站需要多大带宽
  • 网站制作与网站建设实际报告广州网站建设q479185700棒
  • 网站建设服务公司案例智慧城市建设评价网站
  • 苏州网站建设一站通怎么制作手机软件app
  • 精湛的网站建设排行榜怎么学室内装修设计软件
  • 上海电子商务网站百度收录网站的图片
  • 企业网站推广有哪些方式监理企业建设部网站年报
  • 网站开发手机销售网站用例图微信答题小程序制作
  • 江西宜春市建设局网站网站如何备案 附备案流程图
  • 网站建设翻译英文是什么网站备案 费用
  • 网站建设有哪些推广渠道互联网推广是什么工作
  • 邯郸网站html教程的内容
  • 常宁市住房和城乡建设局网站寰宇seo
  • 塘沽企业网站建设腾讯企点下载手机版
  • 建站公司上海《传奇世界》官网
  • 大连建站费用邯郸移动网站建设公司
  • 广州专业做外贸网站建设网站建设初学者必学
  • 网站 什么语言开发的网站开发前景怎么样
  • 超低价的锦州网站建设wordpress 动态筛选
  • 网站设计借鉴其它网站侵权吗网站建设企业服务商
  • 前端和网站开发的区别深圳做网站 龙华信科
  • 如何构成网站长沙部分小区封控
  • 资源库网站建设的总结网站百度收录秒收方法