poj1836 Alignment LIS傻逼题

巨量千川M-API实战:5分钟搞定短视频计划数据自动获取(Python版) 本文详细介绍了如何利用巨量千川M-API和Python快速搭建自动化工具,实现短视频计划数据的自动获取。通过实战代码演示了从环境准备、Token管理到核心数据接口调用的完整流程,帮助电商运营和技术开发者告别手动导出,高效完成数据汇总与分析。 阅读详情

Alignment

http://poj.org/problem?id=1836

Time Limit: 1000MS Memory Limit: 30000K
Total Submissions: 16118 Accepted: 5264

Description


In the army, a platoon is composed by n soldiers. During the morning inspection, the soldiers are aligned in a straight line in front of the captain. The captain is not satisfied with the way his soldiers are aligned; it is true that the soldiers are aligned in order by their code number: 1 , 2 , 3 , … , n , but they are not aligned by their height. The captain asks some soldiers to get out of the line, as the soldiers that remain in the line, without changing their places, but getting closer, to form a new line, where each soldier can see by looking lengthwise the line at least one of the line’s extremity (left or right). A soldier see an extremity if there isn’t any soldiers with a higher or equal height than his height between him and that extremity.

Write a program that, knowing the height of each soldier, determines the minimum number of soldiers which have to get out of line.

Input


On the first line of the input is written the number of the soldiers n. On the second line is written a series of n floating numbers with at most 5 digits precision and separated by a space character. The k-th number from this line represents the height of the soldier who has the code k (1 <= k <= n).

There are some restrictions:
• 2 <= n <= 1000
• the height are floating numbers from the interval [0.5, 2.5]

Output


The only line of output will contain the number of the soldiers who have to get out of the line.

Sample Input


8
1.86 1.86 1.30621 2 1.4 1 1.97 2.2

Sample Output


4

题意:

这道题的题意其实是很好理解的,只是我这几天水题刷多了,理解了无数次才看懂题意,报应啊(雾。
对于一个序列(double),可以去掉某些数字,使得对于该序列的每一个数字,都比其左边或右边的数字大,求最少要去掉的数字个数。

其实这就是一个LIS的简单变形。正着求一边LIS,再倒着来一遍,最后枚举每一个数为最大值,求其最小值。

代码

#include <cstdio>
#include <iostream>
using namespace std;

int n;
double h[1005];
double a[1005],b[1005];
int l[1005],r[1005]; 

int main(){
    cin >> n;
    for(int i = 0;i < n;++i) cin >> h[i];
    int cnt1 = 0;
    int cnt2 = 0;
    for(int i = 0,j = n - 1;i < n;++i,--j){
        if(a[cnt1] < h[i]) a[++cnt1] = h[i];
        else {
            int l = 1,r = cnt1,mid;
            while(l < r){
                mid = (l + r) >> 1;
                if(a[mid] < h[i])l = mid + 1;
                else r = mid;
            }
            a[l] = h[i];
        }
        if(b[cnt2] < h[j]) b[++cnt2] = h[j];
        else {
            int l = 1,r = cnt2,mid;
            while(l < r) {
                mid = (l + r) >> 1;
                if(b[mid] < h[j]) l = mid + 1;
                else r = mid;
            }
            b[l] = h[j];
        }
        l[i] = cnt1;
        r[j] = cnt2;
    }
    int ans = 0;
    for (int i = 1;i < n;++i) ans = max(ans,l[i-1]+r[i]);
    cout << n - ans;
    return 0;
}
PCL 计算点云直线拟合的精度评价标准——直线度 计算点云直线拟合的精度评价标准——直线度 阅读详情

相关推荐

带标签的PHM2009齿轮箱数据集

PHM2009附加数据集—带标签的齿轮箱数据集,可用于测试算法

qq_39379705的博客 4875

poj1836

Alignment Time Limit:1000MS Memory Limit:30000K Total Submissions:6334 Accepted:1995 Description In the army, a platoon is composed by n soldiers. During th...

weixin_33810302的博客 218

从AMBA到USB:手把手教你评估和选择Synopsys DesignWare里的免费商用IP

本文详细介绍了如何评估和选择Synopsys DesignWare中的免费商用IP,从AMBA到USB等关键模块。通过技术参数核对、验证环境评估和集成注意事项,帮助工程师高效利用这些经过硅验证的商业级IP,提升SoC设计效率。文章还探讨了免费IP与付费IP的边界策略,避免常见陷阱。

weixin_42683394的博客 297

POJ 1836 Alignment

Alignment Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 9788   Accepted: 3107 Description In the army, a platoon is composed by n soldiers. During the mornin

ACM2272902662的专栏 935

Matlab结果性能评价---rms函数(计算矩阵、数组和向量元素均方根)

实例1:创建一个向量(正弦波)并计算其均方根值 实例2:创建一个二维矩阵并计算其均方根值 实例3:计算二维矩阵沿指定维度的均方根值 本例程配套完整源码下载 均方根(Root-Mean-Square Level): 向量x的均方根值为沿着指定的维度执行求和: 语法描述: y = rms(x)返回输入x的均方根值。如果x是行或列向量,y是实数值标量。对于大小尺寸大于1矩阵x,y包含沿x的第一个数组维度计算的均方根值。例如,如果x是N > 1的N*M矩阵,那么y是1*M行向量,对应x矩..

qq_32809093的博客 3万+

电力电子技术(13)——大功率可控整流电路

目录引言2.6.1 带平衡电抗器的双反星形可控整流电路电路结构的特点接平衡电抗器的原因平衡电抗器使得两组三相半波整流电路同时导电的原理分析谐波分析2.6.2 多重化整流电路概述原理目标1)移相多重联结2)多重联结电路的顺序控制3重晶闸管整流桥顺序控制带平衡电抗器的双反星形可控整流电路(是多重化整流电路的重要形式之一)的特点:适用于低电压、大电流的场合。多重化整流电路的特点:绕组的极性相反的目的:消除直流磁通势如图所示,虽然两组相电流的瞬时值不同,但是平均电流相等而绕组的极性相反,所以直流安匝(电流*匝数)互

weixin_45589295的博客 1万+

poj 1836 Alignment

一道简单dp题,自己感觉这类dp题都很简单,只要找到一种状态,从小往大了推就行了,可关键是木读懂题啊。。。。。。开始读的时候,没认真理解where each soldier can see by looking lengthwise the line at least one of the line's extremity (left or right)这句话,结果理解成从一个用n个元素...

B218707的博客 175

微信小程序 - 详细解决web-view公众号文章或第三方网站分享转发后打开失败,页面显示“无法打开该页面,不支持打开“、“页面不存在“报错提示,苹果IOS系统手机打开是空白页,安卓手机系统会有提示!

微信小程序,公众号文章,第三方H5网页,内嵌网站分享后打不开,web-view,页面分享,小程序里公众号文章转发后无法打开,白屏,页面空白什么都没有,不支持打开,无法打开该页面,页面不存在,业务域名配置好了还是不行,公众号和小程序已经关联,iOS端苹果真机打开空白页,安卓手机,页面分享后,用户打不开提示错误,提示页面不存在,如何解决页面提示无法打开该页面,微信小程序web-view无法打开该页面不支持打开的解决方法,无法打开该页面不支持打开,最新详细解决方案,分享之后无法打开页面,提示无法打开该页面,不支持

🏆 前端领域优质创作者 1万+

【最长下降子序列+有难度】北大 poj 1836 Alignment

/* THE PROGRAM IS MADE BY PYY */ /*----------------------------------------------------------------------------// Copyright (c) 2012 panyanyany All rights reserved. URL : http://poj.org/pr...

网站开发初中级代码参考-转载 153

【23】C++实战篇——C++报错:LNK2001:无法解析的外部符号 ,LNK2019: 无法解析的外部符号,原因分析及解决方法

该文分析了VS项目中出现的"无法解析的外部符号"LNK2001/LNK2019错误。问题表现为跨项目共享变量时,Projector项目无法解析Line项目中声明的外部变量ImgSavePath和ImgFormat。原因在于头文件声明了变量但未包含实现的源文件。解决方法是将getLine.cpp文件添加到Projector项目中。文章还总结了两种错误代码的区别:LNK2001通常对应变量缺失,LNK2019对应函数缺失。最后列出了具体的报错信息,包括无法解析的变量和函数符号。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 2008

7 中望CAD二次开发-标注(一)(ZRX C++)

尺寸标注是CAD设计中最常用的功能之一,软件内置了很多标注功能,可以通过使用这些标注工具,对需要标注的长度、角度等一个个进行标注。但这显然效率很低,学习CAD二次开发,就是要把人从重复的劳动中解放出来,实现批量标注。本文介绍,如何通过二次开发进行标注。

cilvsuanna的博客 339

[POJ 1836]Alignment[DP][LIS]

题目链接:[POJ 1836]Alignment[DP][LIS] 题意分析: 为了使得士兵的队列满足:任意一个士兵都能看到他前方的无穷远处或者后方的无穷远处(大概是个三角形的样子)。最少需要移出去多少名士兵? 解题思路: 求出原序列的最长上升和最长下降子序列,然后枚举左右士兵即可。 个人感受: 怎么枚举士兵这点没处理好,之前思维卡在三角形只有一个最高点,其实本题并非完全让队列变成三角

闲停 481

vue2/3 - [超详细] 实现企业微信扫码登录完整流程及代码,vue项目接入企业微信扫码登录功能教程,支持新跳页显示二维码或div容器里内嵌登录二维码(详细代码注释,一键复制开箱即用)

vue企业微信扫码登录,vue网页网站企业微信扫码登录教程,vue如何实现企业微信扫码登录功能,vue详细企业微信扫码登录功能实现,vue2实现企业微信扫码登录,前端vue企业微信扫码登录教程,vue pc电脑端企业微信扫码登录详细教程,vue项目中怎么做企业微信扫码注册登录,vue实现网站接入企业微信扫码登录,vue2做企业微信扫码登录的优质文章教程,vue网站对接企业微信扫码登录,vue企业微信扫码登录如何新开一页全屏显示登录二维码,vue企业微信登录二维码 内嵌在div容器里/跳页显示登录二维码,vu

✅ 精选推荐文章 5702

POJ 1836 Alignment DP LIS

传送门:POJ1836 题意:有n个人站成一排,给出他们的身高,让其中某些人出列,要保证剩下的人能看到左边或右边的排头,问最少出队人数是多少。 思路:刚看题的时候理解错了题意,还以为剩下的人只能看向同一边,心想这不就是个裸LIS么。。结果还是我太年轻啊。。 其实剩下人的身高可以是这样:1 2 3 2 1  或者这样: 1 2 3 3 2 1   正确解法:正向和反向做LIS,然后记录每个点

WA是一笔财富 326

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【POJ 1836】 Alignment

【POJ 1836】 Alignment有一队士兵 已知每个士兵个头 想要从中选一些士兵出列 让剩下的士兵向左或向右能看到队首(及左边或右边的士兵个头都< 他) 两次LIS 从左往右 从右往左分别LIS 然后枚举找最少出队人数即可代码如下:#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #de

ACMer' 1050

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

# LIS # POJ 1836 Alignment

POJ 1836 Description In the army, a platoon is composed by n soldiers. During the morning inspection, the soldiers are aligned in a straight line in front of the captain. The captain is not satisfie

FFOYeah的博客 354

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

poj 1836 LIS变形

题目链接http://poj.org/problem?id=1836 Alignment Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 17331 Accepted: 5694 Description In the army, a platoon is...

all00747的博客 144

poj1836-Alignment(LIS)

poj1836 原题链接:http://poj.org/problem?id=1836 Description In the army, a platoon is composed by n soldiers. During the morning inspection, the soldiers are aligned in a straight line in front of t

Yorozuya 374

poj 1836 Alignment 排队

poj 1836 Alignment http://poj.org/problem?id=1836 题意:有士兵n个,根据编号排为一列,但是身高不一,现在要求去掉几个人,使得剩下的每一个人可以向左或向右看到队头。问:至少去掉的士兵数。 dp动态规划 之 双向LIS问题 1 /* 2 Problem: 1836 User:...

aidibi1469的博客 134

POJ1836:Alignment(LIS的应用)

题目链接:http://poj.org/problem?id=1836题目要求:登录后复制 给你n个数,判断最少去掉多少个数,从中间往左是递减的序列,往右是递增的序列1.登录后复制 需注意的是中间可能为两个相同的值,如 1 2 3 3 2 1 输出为01.题目分析:队列不是对称的,并且如果中间有两个士兵一样高...

weixin_35042833的博客 158

POJ 1836 Alignment(LIS和LDS的结合题)

题目地址:点击打开链接 题意:有一队排列好的士兵,长官让一些人除队后,每个人都可以看到左边或者右边的无穷远处 思路:题没怎么看懂,但觉得大致意思就是求最长上升子序列,这样就能看到他左边和右边的人了,看了大神的博客才知道是求LIS和LDS(最长下降子序列,估计应该叫这个名字吧)的组合情况,但还是写错了一次,看下面错误代码, AC代码: #include #include #inc

Java识堂,一个有干货的微信公众号 686

POJ1836【Romania OI 2002】Alignment

题目链接:http://poj.org/problem?id=1836 【分析】     两次LIS,中间允许相等。可以nlogn但我懒得写了。 【代码】 #include #include #include using namespace std; const int maxn=1010; const double eps=1e-8; double h[maxn]

Zarxdy34 1287

POJ 1836 Alignment(LIS变形)

题目链接:http://poj.org/problem?id=1836 题意: 一个队列的士兵,要求选择x个士兵出列,使得剩下的士兵可以看到向左或向右无穷远出,求x最小值。 分别从左向右和从右向左扫一遍最长递增子序列,然后枚举中点,求最大值max,那么n-max则为x最小值。 #include #include #include #include using namespace std;

To be excellent! 325

POJ1836——Alignment

Alignment Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 13366   Accepted: 4296 Description In the army, a platoon is composed by n soldiers. During the morni

Alex 1266

POJ 1836--Alignment(LIS,LCS)

题意:要求一给定序列的子序列,使其中的元素至少能

dingzuoer的专栏 735

POJ 1836 Alignment 双向LIS+DP

POJ 1836 Alignment题目描述:  题目链接:POJ 1836 Alignment题目大意:  令到原队列的最少士兵出列后,使得新队列任意一个士兵都能看到左边或者右边的无穷远处,且除最高点外任一士兵旁边不能存在等高的士兵。图来自http://blog.csdn.net/lyy289065406/article/details/6648129解题思路:  大致的想法就是分别做两个LIS(

Running Boy的AC Dream 487
上一篇: SAP 模板
下一篇: POJ2752 Seek the Name, Seek the Fame KMP应用
Forjames
博客等级 码龄11年 1粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值