首页 > 其他分享 >[JOI 2023 Final] Stone Arranging 2

[JOI 2023 Final] Stone Arranging 2

时间:2023-09-22 15:24:32浏览次数:62  
标签:Stone 覆盖 int 复杂度 cnt 区间 Arranging JOI Final

洛谷P9349

题意

一种区间覆盖操作,可以考虑直接无脑线段树,复杂度为\(O(nlog_n)\)。
但是观察后发现可以开一个桶,记录这个数在序列中出现的最后一次的下标。循环扫一遍原序列,从小到大对于每一个a[i],使得下标i到m[a[i]]的区间全部覆盖为a[i]。每次覆盖一个小区间后,因为前面的区间已经被覆盖,对后续没有任何影响,所以我们可以让i直接跳到m[a[i]]+1,再进行下一次覆盖操作。这样就可以实现 \(O(n)\) 的复杂度。

#include<bits/stdc++.h>
#define MAXN 200086

using namespace std;

map<int ,int> m;
int n,a[MAXN],cnt;


int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        m[a[i]]=i;
        //cnt=max(a[i],cnt);
    }
    
    for(int i=1;i<=n;i=m[a[i]]+1){
        for(int j=i;j<=m[a[i]];j++){
            a[j]=a[i];
        }
    }

for(int i=1;i<=n;i++)cout<<a[i]<<'\n';

return 0;
}

标签:Stone,覆盖,int,复杂度,cnt,区间,Arranging,JOI,Final
From: https://www.cnblogs.com/DAIANZE/p/17722452.html

相关文章

  • . Temporal table join currently only supports 'FOR SYSTEM_TIME AS OF' left table
    org.apache.flink.table.api.ValidationException:SQLvalidationfailed.Temporaltablejoincurrentlyonlysupports'FORSYSTEM_TIMEASOF'lefttable'stimeattributefield  atorg.apache.flink.table.sqlserver.utils.FormatValidatorExcept......
  • 信息披露失职!CFTC对掉期交易商StoneX 处以 65 万美元罚款
    美国商品期货委员会周三(9月20日)宣布对注册掉期交易商StoneXMarketsLLC(StoneX)发出起诉和解令,原因是该公司未能披露数千项交易前中期市场标记(PTMMM),违反了CFTC适用于掉期交易商的《商业行为准则》。该命令要求StoneX支付65万美元的民事罚款,完成补救措施并向执法部门提交合规报告。C......
  • JOIN org.apache.flink.table.api.TableException: Cannot generate a valid execut
    实践:1、--enricheachorderwithcustomerinformationSELECTo.order_id,o.total,c.country,c.zipFROMOrdersASoJOINCustomersFORSYSTEM_TIMEASOFo.proc_timeAScONo.customer_id=c.id;  org.apache.flink.table.api.TableException:Canno......
  • 并发编程系列-分而治之思想Forkjoin
    我们介绍过一些有关并发编程的工具和概念,包括线程池、Future、CompletableFuture和CompletionService。如果仔细观察,你会发现这些工具实际上是帮助我们从任务的角度来解决并发问题的,而不是让我们陷入线程之间如何协作的繁琐细节(比如等待和通知等)。对于简单的并行任务,你可以使用“线......
  • 并发编程系列-分而治之思想Forkjoin
    我们介绍过一些有关并发编程的工具和概念,包括线程池、Future、CompletableFuture和CompletionService。如果仔细观察,你会发现这些工具实际上是帮助我们从任务的角度来解决并发问题的,而不是让我们陷入线程之间如何协作的繁琐细节(比如等待和通知等)。对于简单的并行任务,你可以使用“......
  • joi 自定义错误提示
    <template><div><divclass="bg-whiterounded-lgfont-lightw-96shadowp-4"><divclass="text-centertext-lgmb-4">后台管理系统</div><[email protected]="(e)=>{}">......
  • hash join
    1.概述hashjoin是一种数据库在进行多表连接时的处理算法,对于多表连接还有两种比较常用的方式:sortmerge-join和nestedloop。为了比较清楚的介绍hashjoin的使用场景以及为何要引入这样一种连接算法,这里也会顺带简单介绍一下上面提到的两种join方式。连接方式是一个......
  • OpenStack(Train版)-部署keystone(controller节点)
    三、部署keystone(controller节点)3.1.1、简介3.1.1.1、作用1.用户管理:验证用户身份信息合法性2.认证服务:提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库。3.Keystone是Openstack用来进行身份验证(authN)及高级授权(authZ)的身份识别服务,目前支持基......
  • 27、Flink 的SQL之SELECT (SQL Hints 和 Joins)介绍及详细示例(2-2)
    Flink系列文章[1、Flink部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接][13、Flink的tableapi与sql的基本概念、通用api介绍及入门示例][14、Flink的tableapi与sql之数据类型:内置数据类型以及它们的属性][15、Flink的t......
  • exist和left join 性能对比
    今天遇到一个性能问题,再调优过程中发现耗时最久的计划是exist部分涉及的三个表。然后计划用leftjoin来替换exist,然后查询了很多资料,大部分都说exist和leftjoin性能差不多。为了验证这一结论进行了如下实验步骤如下1、创建测试表droptableapp_family;CREATETABLEapp......