【百度之星初赛2】序列变换(最长上升子序列)

最长上升子序列题目大合集 先看看第一题,再由点到面地延伸: 1759:最长上升子序列 描述 一个数的序列bi,当b1 b2 bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 i1 i2 iK  你的任务,就是对于给定的序列,求出最长上升子序列的长度。 输入 阅读详情

我们有一个数列A1,A2...An,你现在要求修改数量最少的元素,使得这个数列严格递增。其中无论是修改前还是修改后,每个元素都必须是整数。
请输出最少需要修改多少个元素。
 

Input
第一行输入一个 T(1≤T≤10) ,表示有多少组数据

每一组数据:

第一行输入一个 N(1≤N≤105) ,表示数列的长度

第二行输入N个数 A1,A2,...,An 。

每一个数列中的元素都是正整数而且不超过 106 。
 

Output
对于每组数据,先输出一行

Case #i:

然后输出最少需要修改多少个元素。
 

Sample Input
  
2 2 1 10 3 2 5 4
 

Sample Output
  
Case #1: 0 Case #2: 1

http://acm.hdu.edu.cn/showproblem.php?pid=5256

另外一道 最少删去多少值使序列递增 也是一样的做法。

#include<iostream>  
#include<algorithm>  
#include<string>  
#include<map>  
#include<vector>  
#include<cmath>  
#include<queue>  
#include<string.h>  
#include<stdlib.h>  
#include<cstdio>  
#define ll long long  
using namespace std; 
const int maxn = 1e5+10;
int a[maxn];
int b[maxn];
int dp[maxn];
int main()
{
    int n,t,cas=1;
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        int num=0,ans=0,tot=0;
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
            a[i]-=i;  //这一步不可少(原来是往后+1,现在使所有数字平等)
          //if(a[i]<1){  
          //    ans++;    //如果题目要求是正整数的话要这样写
          //}  
          //else{  
          //    b[tot++]=a[i];  
          //}  
            b[tot++]=a[i];
        }
        int dnum=0;
        for(int i=0;i<tot;i++){
            int pos = upper_bound(dp,dp+dnum,b[i])-dp;
            if(pos==dnum) dp[dnum++]=b[i];   //当前长度的dp数组都小于b[i],<span style="font-family: Arial, Helvetica, sans-serif;">那么b[i]插入,长度+1</span>
            else dp[pos]=b[i];               //否则,将当前大于b[i]的这个值替换成b[i],使dp数组内的数字尽可能小(原来的dp[pos]已经变成无穷大)
        }
        ans=ans+tot-dnum;  //总数-dp数组长度
        printf("Case #%d:\n",cas++);
        printf("%d\n",ans);
    }
}


保姆级图解:FD-SOI工艺流程中的关键三步(外延生长、应变硅、HKMG) 本文详细解析了FD-SOI工艺流程中的三大关键技术:外延生长、应变硅工程和HKMG集成。通过选择性外延生长技术优化接触电阻,利用应变硅提升载流子迁移率,并结合先栅高k金属栅工艺实现精准栅极控制,FD-SOI技术在智能手机处理器和自动驾驶芯片制造中展现出卓越的低功耗与高性能平衡。 阅读详情

相关推荐

OpenWrt虚拟机磁盘扩容实战:从SquashFS到ext4的完整避坑指南

本文详细介绍了OpenWrt虚拟机磁盘扩容的完整流程,重点对比了SquashFS和ext4文件系统在扩容操作上的关键差异。通过五步安全迁移法和直接分区调整方案,帮助用户有效解决磁盘空间不足问题,同时提供高级技巧和故障排除指南,确保扩容过程顺利无坑。

weixin_29251131的博客 230

LIS算法: 最长上升子序列

LIS定义 LIS(Longest Increasing Subsequence)最长上升子序列 一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N。 比如,对于序列(1, 7,

wbin233的博客 2万+

Qt C++实现HTTP/HTTPS服务器与客户端:从Socket到协议解析全流程

HTTP协议作为Web通信的基础,定义了客户端与服务器之间基于文本的请求-响应模型。其工作原理是通过TCP连接传输结构化的报文,实现资源获取与数据交换。在C++开发中,掌握HTTP协议底层实现具有重要技术价值,能够帮助开发者构建高性能、可深度定制的网络应用,尤其适用于嵌入式设备管理、桌面应用后端等场景。本文聚焦于使用Qt框架的QTcpSocket和QSslSocket组件,从Socket层面手动实现完整的HTTP/HTTPS通信栈,涵盖协议解析、流式处理、路由分发等核心环节,并深入探讨了HTTPS证书验证、

weixin_31292729的博客 330

hdu 5256 最少修改多少个数 能使原数列严格递增 (LIS)

Problem Description我们有一个数列A1,A2...An,你现在要求修改数量最少的元素,使得这个数列严格递增。其中无论是修改前还是修改后,每个元素都必须是整数。 请输出最少需要修改多少个元素。Input第一行输入一个T(1≤T≤10),表示有多少组数据 每一组数据: 第一行输入一个N(1≤N≤105),表示数列的长度 第二行输入N个数A1,A2,...,An。 每...

weixin_30905133的博客 922

Linux Wireless之80211(nl80211, cfg80211, mac80211)

Linux Wireless之80211(nl80211, cfg80211, mac80211)前言在Linux无线子系统中,cfg80211、mac80211和nl80211是三个关键的组件,它们共同工作以实现对802.11设备的配置和管理。cfg80211负责内核空间的通用API,mac80211负责具体的MAC层实现,而nl80211则作为用户空间与内核空间之间的桥梁,用于配置管理和通信。Netlink 是一个 Linux 中的 socket 类型,用于在内核与用户空间之间传递事件。

DD'Notes 1479

ISCE+Mintpy进行SBASInSAR处理(持续更新)

通过调用pairs_misregistration方法,利用safe_dict中的数据信息,对每对SLC数据进行配准误差的计算和分析,以确定数据之间的精确差异,为后续的时间序列处理提供基础。给定同一地区的两景SAR影像,经过配准之后,对应像元进行共轭相乘得到相位差,并形成干涉图,但是从干涉图中得到的相位差实际上是主值,即在(-π,π)呈周期性变化,为了还原其真实的相位差,必须在主值的基础上加或减整数倍的相位周期2π,把被卷叠的相位展开,才能顺利地反演出地面目标的高程和形变。

Cyy2511250589的博客 3735

LIS 最长上升子序列问题 nlgn时间打印其中一个序列

什么是最长上升子序列?从字面意思就很好理解,就是从一系列顺序输入中,寻找一个上升子序列,要求这个子序列的长度最长。对O(n^2)的解法(DP)这里不讨论了,主要说一下nlgn的解法。网上查了一下,都是通过维护一个数组来实现该算法,但是只给出了求最长上升子序列的长度的代码,没有返回要求的子序列。这里就将此方法扩展一下,使得算法可以返回一个满足条件的子序列。好吧,其实在维基上就有该算法的详细介绍和伪码

u011863942的专栏 1921

23、电器元件符号及封装大全(2025版本)

总计28类电器元件符号和封装。

XU157303764的博客 2655

2013 Noip提高组 Day1

3285 转圈游戏 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述Description n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。按照顺时针方向给 n 个位置编号,从0 到 ...

weixin_30467087的博客 125

组态王的日历时间控件脚本

日期时间控件中的脚本中在小于10的月份和天数前必须要加上0,这是由首字符对比机制规定的,首字母相同,就不再不做对比了,比如1和11,是一样的。首字母不同,再比较下一位。 float Ayear1; float Amonth1; float Aday1; string temp1; Ayear1=sd.Year; Amonth1=sd.Month; Aday1=sd.Day; temp1=StrFromInt( Ayear1, 10 ); if(Amonth1<10) temp1=temp1+"-0"+

逍遥子的博客 5717

多智能体系统在军事仿真中的应用:AI人工智能战略推演

本文旨在全面解析多智能体系统在军事仿真领域的应用技术,重点探讨AI驱动的战略推演系统的设计原理和实现方法。研究范围涵盖从基础理论到实际应用的完整技术栈。本文采用从理论到实践的递进结构,首先介绍核心概念,然后深入算法实现,最后展示实际应用案例和未来展望。多智能体系统(MAS):由多个相互作用的智能体组成的分布式系统军事仿真(Military Simulation):通过计算机模拟军事行动和战争场景战略推演(Strategic Wargaming):通过模拟推演评估军事战略的有效性更高保真度的仿真。

AI天才研究院 1777

hdu5256 序列变换 百度之星初赛第二场 最长上升子序列变形

序列变换 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 147    Accepted Submission(s): 80 Problem Description 我们有一个数列A1,A2...An,你现在要求修改数量最

652

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

[二分+贪心]2015百度之星初赛第一场 序列变换

序列变换 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 158    Accepted Submission(s): 83 Problem Description 给定序列A={A1,A2,...,A

童凌的技术博客 924

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

hdu 5248 序列变换(二分枚举)

Problem Description 给定序列A={A1,A2,...,An}, 要求改变序列A中的某些元素,形成一个严格单调的序列B(严格单调的定义为:Bi<Bi+1,1≤i<N)。 我们定义从序列A到序列B变换的代价为cost(A,B)=max(|Ai−Bi|)(1≤i≤N)。 请求出满足条件的最小代价。 注意,每个元素在变换前后都是整数。 ...

dielucuan8830的博客 139

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

百度之星2015初赛(1)1003 HDOJ5248 序列变换(二分 贪心)

序列变换 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 631    Accepted Submission(s): 309 Problem Description 给定序列A={A1,A2,...,An},

Pashudeanan的专栏 723

百度之星 2015 初赛(1) 1003 序列变换

序列变换    Accepts: 816    Submissions: 3578  Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description 给定序列A={A1,A2,...,An}, 要求改变序列

飞扬天下 2296

百度之星 2015 初赛(2) 1005 序列变换

序列变换    Accepts: 695    Submissions: 3322  Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description 我们有一个数列A1,A2...An,你现在要求修改数量最少的

飞扬天下 1681

hdoj5248序列变换【二分】

序列变换 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 920    Accepted Submission(s): 420 Problem Description 给定序列A={A1,A2,...,An},

走一步再走一步 586

2015百度之星初赛2 1005 序列变换(lis变形)

2015百度之星初赛2 1004解题报告

GODSPEED 1165

2015Astar百度之星初赛 1005 序列变化

序列变换 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 114    Accepted Submission(s): 57 Problem Description 给定序列A={A1,A2,...,An},

qq_18661257的专栏 714

【百度之星初赛】序列变换(二分,贪心)

给定序列A={A1,A2,...,An}, 要求改变序列A中的某些元素,形成一个严格单调的序列B(严格单调的定义为:BiBi+1,1≤iN)。 我们定义从序列A到序列B变换的代价为cost(A,B)=max(|Ai−Bi|)(1≤i≤N)。 请求出满足条件的最小代价。 注意,每个元素在变换前后都是整数。   Input 第一行为测试的组数T(1≤T≤10

芒果街上的小屋(此博客暂时停用) 740

LIS 2015百度之星初赛2 HDOJ 5256 序列变换

题目传送门 题意:中文题面 分析:LIS(非严格):首先我想到了LIS,然而总觉得有点不对;每个数先减去它的下标,防止下面的情况发生:(转载)加入序列是1,2,2,2,3,这样求上升子序列是3,也就是要修改2个,但是中间的两个2,变化范围又不能超过(1,3)那么这样求的也就是不对的,但是减掉之后,相当于给中间重复的数留下了修改的空间。解释下为什么可以减而保持正确性:因为题目所求...

weixin_30752699的博客 85

2015百度之星初赛1 1003(二分)

2015百度之星预赛1 1003解题报告

GODSPEED 1137

序列变换 2015百度之星(初赛)1005

F - 序列变换 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description 我们有一个数列A1,A2...An,你现在要求修改数量最少的元素,使得这个数列严格递增。其中无论是修改前还是修改后,每个元素都必须是整数。 

珞 361
上一篇: 【百度之星初赛】序列变换(二分,贪心)
下一篇: 【百度之星初赛2】魔法因子|乘某个数首末位互换(数学,灵活题)
ccyy-
博客等级 码龄12年 31粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值