首页 > 其他分享 >[ARC125C] LIS to Original Sequence

[ARC125C] LIS to Original Sequence

时间:2023-08-15 19:11:20浏览次数:30  
标签:include cout Sequence int ARC125C LIS 序列 倒序 Original

首先考虑 \(k = 1\),唯一的方案就是倒序输出 \(1\) 到 \(n\)。

我们可以想到,这道题的方法是向已经确定的序列 \(A\) 中插入其他数。

对于一个数 \(x(x < A_i)\),是不能把它放在 \(A_i\) 前的,不然会使最长上升子序列的长度变大。

为了保证字典序最小,我们得把能放在 \(A_i\) 后的最小的数放它后边。

最后要特殊处理 \(A_k\),把剩下没有加入答案序列的部分倒序输出。

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

const int N = 200500;

int n,k;
int a[N],t[N];

int main() {
    cin >> n >> k;
    for(int i = 1;i <= k; i++) {
        cin >> a[i];
        t[a[i]] ++;
    }
    if(k == 1) {
        for(int i = n;i >= 1; i--)
			cout << i << " ";
        return 0;
    }
    
    int cur = 1;
    while(cur <= n && t[cur])
        cur ++;
    
    for(int i = 1;i < k; i++) {
        cout << a[i] << " ";

        if(cur < a[i]) {
            t[cur] ++;
            cout << cur << " ";
            cur ++;
        }

        while(cur <= n && t[cur])
            cur ++;
    }

    for(int i = n; i >= 1; i--) {
        if(!t[i] || i == a[k])
            cout << i << " ";
    }
    return 0;
}

标签:include,cout,Sequence,int,ARC125C,LIS,序列,倒序,Original
From: https://www.cnblogs.com/baijian0212/p/solution-at-arc125-c.html

相关文章

  • Uncaught SyntaxError: Identifier 'originalPrompt' has already been declared
    控制台报错:UncaughtSyntaxError:Identifier'originalPrompt'hasalreadybeendeclared网上查询相关资料,预测是GoogleChrome浏览器安装了插件跟Vue项目运行代码出现了冲突。解决方法:关闭相关插件即可,【可能导致问题产生的插件有:SeleniumIDE】。参考文档:http://www.dtm......
  • IDEA必备插件之Sequence Diagram,你GET了么?
    前言“无论是快速了解业务流程,还是快速的熟悉系统的业务代码逻辑,以及各个类和方法等的调用关系,时序图无疑是其中一种不可获取的简便快捷的方式。一起来了解下,IDEA如何快速生成时序图吧。”工作中,经常需要绘制时序图说明业务流程的设计走向,而逻辑较复杂的时序图,若是单纯的通过人......
  • CCPC Changchun 2020 D, Meaningless Sequence题解
    听说是签到题。不难看出设x为i二进制个数下1的个数(还是难的),则a_i=c^x。那么我们只需要考虑所有0到n的个数。当n为1111时,可以得到为(1+c)^n次方,那么我们把答案看成两部分一部分是1到111...和1000到n,那么当si位为1时,可以看成是n去掉前一位后再乘以c,递推得到每一个位置的答案,就是......
  • C# LINQ中使用聚合函数报错 Sequence contains no elements
    问题:在一个linq查询中使用了平均值聚合函数Average,结果报错Sequencecontainsnoelements(序列不包含任何元素)也就是说,使用某些linq的函数时,如果值不存在是会报错的,比如:First()Single()FirstAsync()SingleAsync()Last()LastAsync()Max()Min()Average()等,解决方案:......
  • 《Decision Transformer: Reinforcement Learning via Sequence Modeling》论文学习
    一、Introduction先前的研究工作表明,Transformer可以对处于高维分布的语义概念进行大规模建模抽象,比较典型地体现如:基于自然语言的零样本泛化(zero-shotgeneralization)分布外图像生成(out-of-distributionimagegeneration)鉴于此类模型在多个领域的成功应用,我们希望研究Tran......
  • UVM:6.4.4 p_sequencer 的使用
    1.考虑如下情况,sequencer有如下变量:2.在sequence发送transaction时,必须设置此dmac和smac,sequence的body如何得到这两个值呢?1)在介绍sequence时,内部有m_sequencer,直接使用m_sequencer得到这两个变量:编译错误:因为m_sequencer是uvm_sequencr_base(uvm_sequencr的基类)类型,而不......
  • UVM:6.2.3 sequencer 的grab 操作
    1.grab比lock优先级更高。2.lock是插到sequencer仲裁队列的后面。3.grab则是插到前面,一发出就拥有sequencer的所有权。4.如果遇到lock,grab不会打断lock,等待lock完成。5.两个grab试图获取,和lock一样,先获得先用,用完再给另外一个。6.my_case0:7.结果......
  • from difflib import SequenceMatcher
    difflib.SequenceMatcher是Python标准库中的一个模块,它用于比较两个序列之间的相似度。它可以用于字符串比较、文件比较等多种场景。matcher.ratio()在使用SequenceMatcher时,需要创建一个SequenceMatcher对象,并将要比较的两个序列传递给它。然后,可以调用ratio()方法来计算两个序列......
  • CF623E Transforming Sequence
    难点在于卡__int128(?)。首先\(N>K\)显然无解,只需考虑\(N\leK\)的情况。然而这并没有什么用。把\(b\)看作集合,显然\(b_i\subsetb_{i+1}\)。所以令\(f_{n,i}\)为考虑到\(b_n\)且\(|b_n|=i\)的方案数,集合元素无序,即选择\(\{A,B,C\}\)或者\(\{A,B,D\}\in\{A,B,C,D......
  • DeepObfusCode:Source Code Obfuscation Through Sequence-to-Sequence Networks
    一、Introduction代码混淆技术旨在解决代码逆向对抗问题。本质上,代码混淆技术的目标是:在保持一个程序逻辑结构不变以及完整保存的前提下,同时让攻击者不易识别,以此保护软件的完整性和知识产权。传统的防护策略包括:插入空白/冗余的逻辑运算增加不必要的条件运算等传统的混淆......