poj 1836 Alignment(dp,LIS)

ShardingSphere-jdbc 5.5.0 + spring boot 基础配置 - 实战篇 shardingsphere 5.5.0移除了sm4算法,自己加上即可。增加spi扩展org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm增加以下代码:SM4算法代码/***/static {@Getter@Overrideif (! 阅读详情

链接:poj 1836

题意:士兵站成一行,求最少要多少的士兵出列,

使得每个士兵都能至少看到一个最边上的士兵

中间某个人能看到最边上的士兵的条件是:

该士兵的身高一定强大于他某一边(左边或右边)所有人的身高,

身高序列可以是:

1  2  3   4   5   4   3   2   1  或者 

1   2   3   4   5   5   4   3   2   1

分析:要求最少出列数,就是留队士兵人数最大,

即左边的递增序列人数和右边的递减序列人数之和最大

因而可转化为求“最长升序子序列”和“最长降序子序列”问题


LIS之 n*n算法 (32MS)

#include<stdio.h>
#define max(a,b) a>b?a:b
int main()
{
    double a[1010];
    int dp1[1010],dp2[1010];
    int i,j,n,ans,max1,max2;
    while(scanf("%d",&n)!=EOF){
        for(i=1;i<=n;i++)
            scanf("%lf",&a[i]);
        ans=max1=max2=0;
        for(i=1;i<=n;i++){    //最长升序
            dp1[i]=1;
            for(j=1;j<=i;j++)
                if(a[j]<a[i]&&dp1[j]+1>dp1[i])
                    dp1[i]=dp1[j]+1;
        }
        for(i=n;i>=1;i--){      //最长降序
            dp2[i]=1;
            for(j=n;j>i;j--)
                if(a[j]<a[i]&&dp2[j]+1>dp2[i])
                    dp2[i]=dp2[j]+1;
        }
        for(i=1;i<=n;i++)       //最长升降序之和
            for(j=i+1;j<=n;j++)
                ans=max(ans,dp1[i]+dp2[j]);
        printf("%d\n",n-ans);  //最少出列数
    }
    return 0;
}<span style="font-family:KaiTi_GB2312;font-size:18px;">
</span>

LIS之 n*log n 算法 (235MS)


#include<stdio.h>
#define INF 3.0
double c[1010];
int bin_find1(int l,int r,double x)
{
    int mid=(l+r)/2;
    while(l!=r){
        if(x<c[mid])
            r=mid;
        else if(x>c[mid])
            l=mid+1;
        else
            return mid;
        mid=(l+r)/2;
    }
    return l;
}
int bin_find2(int l,int r,double x)
{
    int mid=(l+r)/2;
    while(l!=r){
        if(x>c[mid])
            r=mid;
        else if(x<c[mid])
            l=mid+1;
        else
            return mid;
        mid=(l+r)/2;
    }
    return l;
}
int main()
{
    double a[1010];
    int i,j,k,n,len_l,len_r,max;
    while(scanf("%d",&n)!=EOF){
        for(i=1;i<=n;i++)
            scanf("%lf",&a[i]);
        max=0;
        for(k=1;k<=n;k++){
            c[0]=-1;           //最长升序
            len_l=1;
            for(i=1;i<=k;i++){
                c[len_l]=INF;
                j=bin_find1(0,len_l,a[i]);
                c[j]=a[i];
                if(j==len_l)
                    len_l++;
            }
            len_l--;  
            c[k]=INF;         //最长降序
            len_r=1;
            for(i=k+1;i<=n;i++){
                c[k+len_r]=-1;
                j=bin_find2(k,k+len_r,a[i]);
                c[j]=a[i];
                if(j==k+len_r)
                    len_r++;
            }
            len_r--;
            if(max<len_l+len_r)  //最长升降序的和
                max=len_l+len_r;
        }
        printf("%d\n",n-max);
    }
    return 0;
}


Avalonia 超级详细学习指南 什么是 Avalonia?Avalonia 是一个开源的、跨平台的 GUI 框架,允许开发者使用 XAML 和 C# 构建现代化、高性能的桌面应用程序。与其他框架相比,Avalonia 具有强大的跨平台能力和灵活的界面设计。} }()Avalonia 的特点和优势跨平台性:Avalonia 可以在 Windows、Linux、macOS 等多个平台上运行,开发者可以编写一套代码,然后在不同的操作系统上运行相同的应用程序。 阅读详情

相关推荐

Mimics 21.0软件学习笔记(一)基本操作

Materialise Mimics 21.0打开工程窗口化Thresholding 二值化Region growing区域增长创建一个3D表示,并显示股骨头从髋臼中区分出来,并单独为股骨头建立3D模型 打开工程 Opening the Project 窗口化 Windowing 二值化 Thresholding 区域增长 Region Growing 建立 3D 表示 Creating a 3D representation 显示 3D 表示 Displaying a 3D representation

qq_35495464的博客 4万+

[POJ 1836]Alignment[DP][LIS]

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

闲停 481

LDA模型中文文本主题提取丨可视化工具pyLDAvis的使用

主题模型LDA的实现及其可视化pyLDAvis1. 无监督提取文档主题——LDA模型1.1 准备工作1.2 调用api实现模型2. LDA的可视化交互分析——pyLDAvis2.1 安装pyLDAvis2.2 结合gensim调用api实现可视化p.s. 保存结果为独立网页p.p.s. 加快prepare速度?2.3 如何分析pyLDAvis可视化结果2.3.1. **每个主题表示什么意义?**2.3.2 每个主题有多么普遍?2.3.3 主题之间有什么关联? 1. 无监督提取文档主题——LDA模型 这个模型

qq_39496504的博客 6万+

POJ 1836 Alignment DP LIS

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

WA是一笔财富 326

MTEX包在Matlab中实现从EBSD数据生成Abaqus网格与晶粒取向:一种对用户材料旋转矩阵分量实践的全面指南

此教程提供了一种使用MTEX Matlab包处理EBSD数据的方法,并生成Abaqus输入文件,这对于进行多晶体有限元分析具有极大的帮助。但值得注意的是,这只是一个基本的例子,实际应用中可能需要根据您的实际需求进行调整。MTEX包还提供了许多其他的功能,可以进行更复杂的分析和处理,我非常推荐您去探索。希望这篇文章能对您有所帮助,如果您有任何疑问或建议,欢迎留言交流。在接下来的文章中,我将会介绍更多关于MTEX的高级功能,敬请期待。– (完)–

qq_38334677的博客 4436

基于物联网设计温室水培系统(NBIOT+华为云IOT)_338

本项目设计并实现了一套基于物联网的温室水培系统。系统以STM32F103RCT6单片机为核心控制器,结合SHT30温湿度传感器、SGP30二氧化碳传感器、BH1750光照传感器及液位检测传感器等硬件,实现对温室内环境参数的实时采集。系统支持自动和手动两种控制模式,能够根据传感器数据自动控制补光灯、通风风扇、遮光卷帘、降温水帘及营养液补充电机。通过NBIoT模块,系统可将采集的数据通过MQTT协议上传至华为云IOT平台,用户可通过Android手机APP或Windows上位机进行远程监控与控制。

412

POJ 1836 Alignment 双向LIS+DP

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

Running Boy的AC Dream 487

NVIDIA Omniverse 技术浅析(二):USD

例如,一个用户可以负责场景的几何体设计,另一个用户可以负责材质和灯光的调整。USD 的开放性和可扩展性,结合 Omniverse 的 Kit 扩展框架,使得用户和开发者可以创建自定义的应用程序和工具,以满足特定的需求。USD 的材质和物理属性系统,结合 Omniverse 的 RTX 实时渲染技术,使得用户可以在虚拟环境中看到逼真的光影效果和物理模拟。USD 的时间轴和动画功能,结合 Omniverse 的物理属性系统,使得用户可以为虚拟环境中的元素创建复杂的动画和物理模拟。

m0_75253143的博客 444

POJ 1836 Alignment(DP LIS)

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

Grit_ICPC的博客 608

某易将军令口令纯算法还原py篇

算法开源,将军令口令算法。希望官方多多更新吧

任雪飘的博客 3907

OpenStack ussuri 私有云平台搭建企业级实战

openstack是一个云操作系统,这个操作系统控制着数据中心中的计算,存储和网络资源。所有这些资源的管理都是通过API来来实现的,并且管理资源都有相应的认证机制。在openstack中有一个叫做dashboard的仪表盘,这个仪表盘通过web界面可以管理这些在DC中的资源。除了能提供IaaS功能外,你还可以使用orchestration,错误管理和服务管理等服务来确保应用的高可用性。

悦分享 2337

poj 1836 Alignment (DP LIS)

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

ysCover 601

在 SAP BTP 上为应用开启多租户能力:基于 SaaS Provisioning 和 XSUAA 的完整实践指南

本文介绍了在SAP BTP上配置多租户应用的实战指南。主要内容包括: 多租户架构概述:解释provider子账户、consumer子账户和tenant的概念,以及数据隔离机制。 安全配置:在xs-security.json中设置tenant-mode为shared,并为SaaS Provisioning服务添加回调scope授权。 路由配置:通过manifest.yml设置TENANT_HOST_PATTERN来定义多租户访问模式,确保不同租户通过不同子域名访问同一应用。 服务绑定:将XSUAA和SaaS

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 144

POJ 1836 Alignment(DP | LIS)

题意:有一个序列,现在从中去除一些数,使得每个数比左边或右边的所有数都大。 思路:LIS。可以看出最后答案中的序列一定是一个递增或递减或一个递增加一个递减序列组成,所以我们可以预处理出每个位置左边最长上升子序列的长度,和右边最长下降子序列的长度,然后扫一遍求出相邻位置的二者和的最大值就是最后序列中的元素数量。 #include #include #include #include #inclu

GODSPEED 444

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

[线性DP]poj1836 Alignment(LIS的简单应用)

poj1836 Alignmen 题意: 我是个被水题虐的zz…… 身高要呈金字塔型,问最少出去几个人 表述很迷,说一个人要至少能看到一个extremity极端(意思是无穷远处) (与队尾队首之间没有身高>=他的)才能留在队列里 思路: 和合唱队形(NOIP2014)一样,从来两边LIS一遍,加起来找最大值即可,略不一样的是不能找同一个i加起来(dp_l[i]+dp_r[i]是错

soundwave_的博客 421

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

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

POJ 1836 Alignment DP(LIS)

题意:从一列队伍中抽出一些人,使得剩下的队伍中的人按身高有序排列(升序,或者降序,或者先升后降). 题解:LIS。枚举边界。边界左边的人身高逐渐升高,右边的逐渐降低。 #include #define N 1010 double array[N]; int dpleft[

728

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

POJ 1836 Alignment (线性dp LIS的两种姿势)

                                     Alignment Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 13818   Accepted: 4470   Description In the army, a platoon is composed ...

Tc的专栏 2086

poj1836 Alignment (DP,线性LIS)

题目链接:https://vjudge.net/problem/POJ-1836 题意:令到原队列的最少士兵出列后,使得新队列任意一个士兵都能看到左边或者右边的无穷远处。就是使新队列呈三角形分布就对了。即左边的递增序列人数和右边的递减序列人数之和最大因而可转化为求“最长不降子序列”和“最长不升子序列”问题。进一步转化为从头部求出最长不下降子序列与从尾部求出最长不下降子序列即可,分别求出二者...

weixin_30426879的博客 109

POJ 1836-Alignment(DP/LIS变形)

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

Orz~~Orz 807

【POJ - 1836】Alignment(dp,LIS,最长上升子序列类问题)

题干: 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...

xuanweiace的博客 382

# 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

【POJ 1836】 Alignment

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

ACMer' 1050

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的博客 133

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(LIS)

题目链接:https://vjudge.net/problem/POJ-1836 题意:给定n个数组成的序列,求最少减掉几个人,使得序列先单调递增再单调递减。 思路:枚举i:1..n,以i为边界,左边递增,右边递减,两次LIS即可,用O(nlogn)的做法,求结果最小即可。总时间复杂度O(n^2logn)。 AC代码: #include<cstdio> #inc...

weixin_30757793的博客 127
上一篇: poj 1080 Human Gene Functions (dp,LCS)
下一篇: poj 1094 Sorting It All Out (拓扑排序)
happy_lcj
博客等级 码龄13年 7粉丝 152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值