最少拦截系统

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 53723    Accepted Submission(s): 21061

Problem Description
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.
怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统.
Input
输入若干组数据.每组数据包括:导弹总个数(正整数),导弹依此飞来的高度(雷达给出的高度数据是不大于30000的正整数,用空格分隔)
Output
对应每组数据输出拦截所有导弹最少要配备多少套这种导弹拦截系统.
Sample Input
8 389 207 155 300 299 170 158 65
Sample Output
2
因为没有给导弹个数的范围,所以不敢开数组去存下来,只好往着边输入边解决的方法去计算。
思路:暴力更新区间。
 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 const int maxn=30006;
 5 bool dp[maxn];
 6
 7 int main()
 8 {
 9     int n;
10     while( ~scanf("%d",&n)){
11         int top=0,ans=0,num;
12         memset( dp, false, sizeof dp);
13         for(int i=1;i<=n;i++){
14             scanf("%d",&num);
15             if(num>=top){
16                 ans++;
17                 dp[num]=true;
18                 top=num;
19             }
20             else{
21                 int j;
22                 for(j=num;j<=top;j++){
23                     if(dp[j]) break;
24                 }
25                 if(j==top){
26                     dp[top]=false;
27                     dp[num]=true;
28                     top=num;
29                 }
30                 else{
31                     dp[j]=false;
32                     dp[num]=true;
33                 }
34             }
35         }
36         printf("%d\n",ans);
37     }
38     return 0;
39 }

因为这道题目的是被某神放在dp里面,本菜鸡实在是没有想到dp的方法,就上网查题解看有没有人用dp去做的。

发现真的可以把导弹的每一个都存下来,然后用LIS。。。

说实话,把每个导弹的高度都存下来我就没有想。然而,确实能存。

下面的代码来自:https://blog.csdn.net/hurmishine/article/details/52926957

 1 #include<cstdio>
 2 const int maxn=10000;
 3 int a[maxn],dp[maxn];
 4 int n;
 5
 6 int LIS()
 7 {
 8     dp[1]=1;
 9     int ans=1;
10     for(int i=2;i<=n;i++){
11         int m=0;
12         for(int j=1;j<i;j++){
13             if(dp[j]>m&&a[j]<a[i])
14                 m=dp[j];
15         }
16         dp[i]=m+1;
17         if(dp[i]>ans)
18             ans=dp[i];
19     }
20     return ans;
21 }
22
23 int main()
24 {
25     while( ~scanf("%d",&n)){
26         for(int i=1;i<=n;i++)
27             scanf("%d",&a[i]);
28         printf("%d\n",LIS());
29     }
30     return 0;
31 }

转载于:https://www.cnblogs.com/ZQUACM-875180305/p/9090234.html

hdoj 1257(暴力)相关推荐

  1. 状态压缩 + 暴力 HDOJ 4770 Lights Against Dudely

    题目传送门 题意:有n*m的房间,'.'表示可以被点亮,'#'表示不能被点亮,每点亮一个房间会使旁边的房间也点亮,有意盏特别的灯可以选择周围不同方向的房间点亮.问最少需要多少灯使得所有房间点亮 分析: ...

  2. HDOJ 5131 Song Jiang's rank list(暴力排序水题)

    Song Jiang's rank list Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java ...

  3. HDOJ ACM 题目

    转载 HDOJ 题目分类(转) 1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 H ...

  4. 逆序数2 HDOJ 1394 Minimum Inversion Number

    题目传送门 1 /* 2 求逆序数的四种方法 3 */ 1 /* 2 1. O(n^2) 暴力+递推 法:如果求出第一种情况的逆序列,其他的可以通过递推来搞出来,一开始是t[1],t[2],t[3]. ...

  5. HDOJ 1012-1020

    最近感冒了,有点小咳嗽,做题速度比较慢,本以为这周会做的比较少,没想到全是水题...我做的也蛮开心的@.@...对自己无语 HDOJ 1012 这个题目蛮简单,就是输出格式比较烦,处理好格式基本就没问 ...

  6. bzoj 1257: [CQOI2007]余数之和sum

    1257: [CQOI2007]余数之和sum Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 4462  Solved: 2078 [Submit][ ...

  7. HDOJ题目分类大全

    版权声明:本文为博主原创文章,欢迎转载,转载请注明本文链接! https://blog.csdn.net/qq_38238041/article/details/78178043 杭电里面有很多题目, ...

  8. hdoj杭电问题分类

    杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...

  9. HDU 6085 Rikka with Candies (暴力压位)

    题目链接 HDU 6085 Rikka with Candies 分析 其实很容易想到一个有技巧的暴力方法,我们可以这样办 首先对于每一个 AiA_i 我们考虑比 AiA_i 大的部分 BB ,对于这 ...

最新文章

  1. 太好玩了,爬虫、部署API、加小程序,一条龙玩转知乎热榜!
  2. HttpServletRequest应用(转)
  3. PowerDesigner连接Oracle数据库生成数据模型【本地连接方式】
  4. 计算机题windows如何操作,2015年职称计算机Windows操作系统模拟题(二)
  5. 设置textview背景色为透明
  6. 计算机科学与技术社会实践报告,计算机科学与技术系社会实践报告
  7. ubuntu安装pytorch镜像修改及下载
  8. SQLServer知识:sqlcmd用法笔记
  9. php 反射 视频教程,php 实现反射
  10. 数据库的持续集成和版本控制[转自INFOQ]
  11. 什么是TensorBoard?
  12. 2021最新大厂面试题集锦
  13. 基于差分分级和关联规则挖掘的气象数据关联性分析实战
  14. JQuery Tables 的应用(二)
  15. 振铃效应与样点自适应补偿(Sample Adaptive Offset,SAO)技术
  16. 12个开放平台大家一起来玩
  17. 软件工程作业-方舟学习笔记08-部分原理(续
  18. 整除分块 B - Make Divisible
  19. 树的序列化——浅谈 dfn 与欧拉序列
  20. 西安市:外地职工离职如何提取公积金

热门文章

  1. 【例1】 给定n(n>=1),用递归的方法计算1+2+3+4+...+(n-1)+n。
  2. 1.9 编程基础之二分查找 12 最长平台 python
  3. css中如何实现帧布局_?如何在Python中加入多个数据帧?
  4. 仿minecraft游戏 linux,【图片】【Codea制作仿MineCraft3D游戏】Craft Ver. 0.1发布(开源)【codea吧】_百度贴吧...
  5. docker pull php7,Docker pull php:7.1-fpm的php.ini配置修改
  6. java 全排列 非递归_全排列(递归与非递归实现) | 学步园
  7. python打印字节流_java打印流的输出使用
  8. Qt文档阅读笔记-moc工具使用及其理论(moc工具如何添加到makefile中)
  9. 前端笔记-thymeleaf获取及回显input标签type=time
  10. Nginx文档阅读笔记-Reverse Proxy vs. Load Balancer(反向代理与负载均衡)