Testing the CATCHER

2023-10-27


http://poj.org/problem?id=1887Description

A military contractor for the Department of Defense has just completed a series of preliminary tests for a new defensive missile called the CATCHER which is capable of intercepting multiple incoming offensive missiles. The CATCHER is supposed to be a remarkable defensive missile. It can move forward, laterally, and downward at very fast speeds, and it can intercept an offensive missile without being damaged. But it does have one major flaw. Although it can be fired to reach any initial elevation, it has no power to move higher than the last missile that it has intercepted.

The tests which the contractor completed were computer simulations of battlefield and hostile attack conditions. Since they were only preliminary, the simulations tested only the CATCHER's vertical movement capability. In each simulation, the CATCHER was fired at a sequence of offensive missiles which were incoming at fixed time intervals. The only information available to the CATCHER for each incoming missile was its height at the point it could be intercepted and where it appeared in the sequence of missiles. Each incoming missile for a test run is represented in the sequence only once.

The result of each test is reported as the sequence of incoming missiles and the total number of those missiles that are intercepted by the CATCHER in that test.

The General Accounting Office wants to be sure that the simulation test results submitted by the military contractor are attainable, given the constraints of the CATCHER. You must write a program that takes input data representing the pattern of incoming missiles for several different tests and outputs the maximum numbers of missiles that the CATCHER can intercept for those tests. For any incoming missile in a test, the CATCHER is able to intercept it if and only if it satisfies one of these two conditions:

The incoming missile is the first missile to be intercepted in this test.
-or-
The missile was fired after the last missile that was intercepted and it is not higher than the last missile which was intercepted.

Input

The input data for any test consists of a sequence of one or more non-negative integers, all of which are less than or equal to 32,767, representing the heights of the incoming missiles (the test pattern). The last number in each sequence is -1, which signifies the end of data for that particular test and is not considered to represent a missile height. The end of data for the entire input is the number -1 as the first value in a test; it is not considered to be a separate test.

Output

Output for each test consists of a test number (Test #1, Test #2, etc.) and the maximum number of incoming missiles that the CATCHER could possibly intercept for the test. That maximum number appears after an identifying message. There must be at least one blank line between output for successive data sets.

Note: The number of missiles for any given test is not limited. If your solution is based on an inefficient algorithm, it may not execute in the allotted time.

Sample Input

389
207
155
300
299
170
158
65
-1
23
34
21
-1
-1
$$$$$$$$$$$$$$$$$$$$$$$$$$$$
最长下降子序列:与最长上升子序列相反;
#include<stdio.h>
int main()
{
	int g[32769],i,j,k,m,n,a[32770],flag;
	int w=0;
	while(scanf("%d",&g[0]))
	{
		w++;
		m=1;
		if(g[0]==-1)
		break;
		printf("Test #%d:\n",w);
		while(scanf("%d",&g[m++]))
		{
			if(g[m-1]==-1)
	    		break;
		}
		a[0]=g[0];
		k=0,flag=0;
		for(i=1;i<m;i++)
        {
        	flag=0;
        	for(j=0;j<=k;j++)
        	{
	        	if(g[i]>a[j])
	        	{
	        		flag=1;
	        		a[j]=g[i];
	        	}
	        	if(g[i]<a[j]&&j==k)
	        	{
	        		k++;
	        		flag=1;
	        		a[k]=g[i];
	        	}
	        	if(flag)
	        	{
	        		break;
	        	}
	        }	 	
    	 }
    	 printf("  maximum possible interceptions: %d\n\n",k);
	}
	return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Testing the CATCHER 的相关文章

  • Selenium 中的“断言”与“验证”

    Selenium 执行的检查通常有两种形式 assertFoo 和 verifyFoo 据我所知 assertFoo 使整个测试用例失败 而 verifyFoo 只是记录该检查的失败并让测试用例继续进行 因此 使用 verifyFoo 即使
  • 如何检查用户是否按下了某个键?

    在java中 我有一个程序需要连续检查用户是否按下了某个键 所以在伪代码中 就像 if isPressing w do somthing 在java中 你不检查是否按下了某个键 而是检查listen to KeyEvents 实现您的目标的
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • 向带有检查约束 SQL 的表添加列

    我想向表中添加一列 然后添加一个检查约束以确保其大于 0 我似乎无法让它在 oracle sl Developer 中运行 Alter TABLE store101 add column Base salary Number 7 2 con
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 解析输入,除了 System.in.read() 之外不使用任何东西

    我很难找到具体的细节System in read 有效 也许有人可以帮助我 似乎扫描仪会更好 但我不允许使用它 我被分配了一个任务 我应该以 Boolean Operator Boolean 的形式读取控制台用户输入 例如T F 或 T T
  • ng-model 和值组合不适用于输入文本框

    我有两个输入文本框 我需要组合在两个文本框中输入的值并将其显示在第三个文本框中 如果我只使用value在第三个文本框中 Box 1
  • 如何生成源代码来创建我正在调试的对象?

    我的典型场景 我处理的遗留代码有一个错误 只有生产中的客户端才会遇到 我附加了一个调试器并找出如何重现该问题their系统给定their输入 但是 我还不知道为什么会发生错误 现在我想在本地系统上编写一个自动化测试来尝试重现然后修复错误 最
  • Android键盘点击搜索输入时出现和消失

    我在用谷歌地图 Js API当我搜索一个地方时 我的输入搜索栏工作正常 当我通过 iPhone 设备使用它时 它也工作得很好 但是当我通过Android 设备然后键盘立即出现和消失 我已经找到了一些关于当我按下搜索栏时 android 键盘
  • System.InvalidCastException:指定的强制转换无效

    使用 WatiN 的自动化正在进行中 使用几个并发线程来测试应用程序 很少有线程失败 日志报告 堆栈跟踪显示以下内容 System InvalidCastException Specified cast is not valid at SH
  • 程序不等待 cin

    int x 0 string fullname float salary float payincrease float newsal float monthlysal float retroactive while x lt 3 cout
  • 如何使用 JS/Puppeteer 上传文件

    我试图弄清楚如何将图片文件上传到输入对话框中 不可能只输入名称并按 Enter 键 因为我没有找到使用 Puppeteer 实现自动化的方法 我想我必须设置一些值作为图片 但我不知道该怎么做 有任何想法吗 您使用上传文件elementHan
  • 如何使用 PHP 解释 HTML5 输入日期值

    我需要让用户选择一个日期 最好采用 dd mm yy 格式 我决定尝试新的 HTML5 输入日期类型 但是我不知道如何解释它在服务器端给出的值 我得到的值是 yyyy mm dd 我怎样才能做到这一点 如果用户使用不支持它的旧版浏览器怎么办
  • scala 中的模拟案例类:Mockito

    在我的游戏应用程序中 我打算模拟一个案例类 我可以这样做 但它创建了一个所有成员变量都为空的对象 有没有办法创建案例类的模拟对象 以便该对象可以初始化一些成员 case class User name String address Stri
  • 如何在 Azure DevOps 发布管道中保存测试结果

    在发布管道期间 我将启动 Selenium 测试 如果这些测试失败 则会进行屏幕截图 我正在寻找一种上传它们的方法 以便我可以查看它们并检查出了什么问题 我设法将它们压缩 但不幸的是 所有上传方法都不适用于发布管道 有没有办法在发布管道期间
  • codeigniter 动态表单输入名称的表单验证

    我有一个 codeigniter 应用程序 我的视图使用数据库行 ID 附加到输入名称以获取唯一 ID 这允许我在表单操作 即更新 中使用所有输入 我的视图语法 table tr th nbsp th th nbsp th th Custo
  • 使用 REST 协议和 JSON 数据格式测试 Web 服务的最佳工具是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是使用 JSON 数据格式测试 REST Web 服务的新手 我尝试了SOUPUI 但不幸的是不支持
  • testcafe是否支持rest api的测试

    当您尝试直接测试其余 api url 时 测试会在 testcafe 浏览器中挂起 我正在尝试使用请求挂钩针对我的其余 API 端点运行测试 但是当我从命令行运行测试时 浏览器会打开 API 端点并加载它并挂起 测试没有通过或失败并且挂起
  • 如何使用JMeter对网站进行负载测试

    我想在 JMeter 中创建一个脚本来模拟100 位用户在 3 4 分钟内访问我们的网站 我们需要测试我们的应用程序是否可以允许 25 000 个用户 天 即每小时 1 100 个用户 为此我做了这个 Jmeter 测试 这是结果 这是图表

随机推荐

  • 正确解决:坑爹的0xc000007b——应用程序无法正常启动

    问题情景 vs2013 写的一个64位的exe程序 release后带着来自系统目录C Windows SysWOW64 msvcr120 dll 到一个没有runtime的win7环境去运行 没有用到MFC 所以带着这个msvcr120
  • 华为校招机试题-货币单位换算-2023年

    题目描述 记账本上记录了若干条多国货币金额 需要转换成人民币分 fen 汇总后输出 每行记录一条金额 金额带有货币单位 格式为数字 单位 可能是单独元 或者单独分 或者元与分的组合 要求将这些货币全部换算成人民币分 fen 后进行汇总 汇总
  • Mysql注入—union联合注入、报错注入、布尔盲注、时间盲注

    Union联合注入 判断是否存在注入 判断注入点类型 参考另一片博文 gt gt 渗透技巧 手动判断注入点 思维导图 1 获取数据库中信息 判断列数 1 order by 1 1 order by n 备注 判断列数可以使用 二分法 及一分
  • vc++ win32消息参考大全(待修改)

    WM CREATE 应用程序创建一个窗口 WM DESTROY 一个窗口被销毁 WM MOVE 移动一个窗口 WM SIZE 改变一个窗口的大小 WM ACTIVATE 一个窗口被激活或失去激活状态 WM SETFOCUS 获得焦点后 WM
  • 老卫带你学---leetcode刷题(35. 搜索插入位置)

    35 搜索插入位置 问题 给定一个排序数组和一个目标值 在数组中找到目标值 并返回其索引 如果目标值不存在于数组中 返回它将会被按顺序插入的位置 请必须使用时间复杂度为 O log n 的算法 示例 1 输入 nums 1 3 5 6 ta
  • tar压缩、解压均会自动覆盖重名文件

    linux下使用tar压缩或解压文件 如果压缩或解压后的文件与同目录下的文件重名 会直接覆盖重名文件 但是 如果原文件夹下有解压后的重名文件夹没有的文件 这些文件仍然存在 即重名的文件夹不会直接覆盖 而是比较两个文件夹中重名的文件 只替换这
  • Tomcat配置域名和端口

    Tomcat配置域名和端口 1 进入tomcat文件夹 2 cd 到你的tomcat下 3 修改server xml文件中监听端口 4 重启tomcat 1 进入tomcat文件夹 2 cd 到你的tomcat下 3 修改server xm
  • Linux学习笔记-shell脚本拼接文件并排序

    shell实现两个文件的拼接 在实际的数据处理中 需要将多个文件写到同一个文件中 或者实现两个文件的拼接操作 这时候可以采用如下代码 cat inputFileName1 gt outputFileName cat inputFileNam
  • 服务器2003ftp站点向导,Windows 2003 ftp 配置

    Windows 2003 ftp 配置有几大步骤 首先要安装 FTP 然后开始配置 配置过程中需要新建用户和文件夹 分配权限 创建虚拟目录等 具体看下面详细步骤 一 安装 FTP 1 依次选择 开始 控制面板 打开窗口如图1所示 图1 2
  • glew, glee与 gl glu glut glx glext的区别和关系

    GLEW是一个跨平台的C 扩展库 基于OpenGL图形接口 使用OpenGL的朋友都知道 window目前只支持OpenGL1 1的涵数 但 OpenGL现在都发展到2 0以上了 要使用这些OpenGL的高级特性 就必须下载最新的扩展 另外
  • [saiku] schema文件分析

    上一篇讲到了如何在管理台配置数据源 http www cnblogs com avivaye p 4877767 html 这次来说明下shema文件里面是怎样配置Cube和角色权限的 通过分析demo中的FoodMart xml 可以得知
  • vue项目中使用trackingjs人脸识别

    vue项目中使用trackingjs人脸识别 前言 一 下载trackingjs库 二 trackingjs引用 三 检测过程 1 初始化设置 创建实例 2 检测视频中人脸 3 判断上传 4 上传人脸 5 关闭摄像头 四 源代码 五 效果图
  • 要在 VS Code 中配置 C 环境并进行编程

    要在 VS Code 中配置 C 环境并进行编程 需要进行以下步骤 安装 C 编译器 在 Windows 系统中 可以下载安装 Mingw w64 等编译器 如果您使用的是 macOS 或 Linux 系统 则默认已安装 GCC 编译器 通
  • 硬盘未格式化如何处理(硬盘忽然未格式化如何处理)

    将硬盘插入电脑的时候为什么会出现 未格式化 的提示框呢 遇到这个问题时又该怎么处理呢 别慌 下面小编就来给大家演示一下子解决未格式化这个问题的解决方法 硬盘未格式化如何处理 工具 软件 sayRecy 步骤1 先百度搜索并下载程序打开后 会
  • ZYNQ无SD卡配置Linux系统到QSPI Flash和eMMC

    硬件 黑金AX7450开发板 zynq7100 QSPI Flash eMMC Flash 软件 Vivado 2017 4 Petalinux 2017 我用了一台Windows主机 用于设计Vivado和烧写QSPI Flash 一台U
  • 如何把VRTE的应用程序在Ubuntu上跑起来?

    1 rvbuild d project name 20 产生一个文件夹vrte 如果此时直接将vrte文件夹打包放到Ubuntu的 opt目录内 执行 opt vrte usr bin exmd sh 会出现如下错误 但是查看文件发现这个文
  • 电感的主要参数

    转载 大鑫专栏 大鑫专栏 2022 02 13 21 08 电感的主要参数 1 电感量 L 又称自感系数 表示电感器产生自感能力的一个物理量 电感器电感量的大小 主要取决于线圈的圈数 匝数 绕制方式 有无磁心及磁心的材料等等 当通过一个线圈
  • [798]操作无法完成,因为文件已在另一个程序中打开

    我们在对文件或文件夹进行删除 移动 重命名等操作时 系统可能提示 操作无法完成 因为其中的文件夹已在另一程序中打开 请关闭该文件或文件夹 然后重试 遇到这种情况我们应该怎么办呢 请看下文 当我们对文件进行重命名 删除或者是移动处理的时候 有
  • Uboot命令使用

    一 uboot启动log简析 1 以后带有调试性质的开发 uboot都是烧写到SD卡中的 因为方便烧写 二 uboot命令使用 2 1 help命令 查看某一个命令帮助信息 命令名 2 2 信息查询 1 bdinfo 2 printenv命
  • Testing the CATCHER

    http poj org problem id 1887Description A military contractor for the Department of Defense has just completed a series