CF Div2 977 C2

原题链接:Problem - C2 - Codeforces

题意:给出长度为n的数组p,这是一个1~n的排列,含义是第i个位置站着第p[i]号人。给出长度为m的数组q,含义是第i个幻灯片被第p[i]号人讲解,那么就是完美的,每个幻灯片都需要有人来讲解,每次讲解的人必须是数组p的第一个人,当某个人讲解完成之后,他可以去数组p的任何位置,有k次询问每次会改变q数组,每次给出q和w,让q[x]=w,每次改变都是永久的。输出k+1行,判断初始情况是否可以完成讲解和每次询问是否可以完成讲解,完成讲解的定义是每个幻灯片都被完美讲解。

思路:通过模拟可以知道,如果某个人讲解完成了之后,那么这个人就是自由的,他一定可以去需要他的位置,所以只要幻灯片需要的人正好是第一个或者这个人是自由的,那么就是完美的。如果不修改q数组,那么只要让q数组中不同数出现的相对位置和p数组中相同就可以了。可以观察到,如果完成讲解p数组中的数在q数组里面第一次出现的下标一定是升序的,用f数组来代表p数组里面每个数第一次在q数组里面出现的位置,完成讲解的情况下一定满足f[p[i]]<f[p[i+1]]。每次询问可能改变的是q[x]和w第一次出现的位置,如何判断改变后的状态和改变前的状态是否不同,那么可以用cnt来表示f[p[i]]>f[p[i+1]]的个数,如果是0那么就是完成讲解。因为要找到每个数第一次出现的位置,所以需要一个有序的容器来装每个数的位置,使用set。

//冷静,冷静,冷静
//调不出来就重构
//#pragma GCC optimize(2)
//#pragma GCC optimize("O3")
#include<bits/stdc++.h>
#define count2(x) __builtin_popcountll(x)
#define is2(x) __builtin_ffsll(x)
#define endl '\n'
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<ll,ll> pii;
const int N=1e6+10,mod=1000000007;
ll p[N],id[N],q[N];
set<ll> st[N];
ll f[N];
ll cnt,n,m,sb;
void updata(ll x,ll op)
{//如果这个数,在p数组中左右还有数的情况下,那么就先考虑删除这个数变化之前的影响。//id[q[x]]是q[x]在p中的位置p[id[q[x]]是q[x],p[id[q[x]]-1]是q[x]在p中位置的左边的数,f[p[id[q[x]]-1]]是左边数第一次出现的位置  if(id[q[x]]-1>0)cnt=cnt-(f[p[id[q[x]]-1]]>f[p[id[q[x]]]]);if(id[q[x]]+1<=n)cnt=cnt-(f[p[id[q[x]]]]>f[p[id[q[x]]+1]]);if(op)st[q[x]].insert(x);else st[q[x]].erase(x);f[q[x]]=*st[q[x]].begin();//更新f数组之后,重新加上x这个位置的影响。 if(id[q[x]]-1>0)cnt=cnt+(f[p[id[q[x]]-1]]>f[p[id[q[x]]]]);if(id[q[x]]+1<=n)cnt=cnt+(f[p[id[q[x]]]]>f[p[id[q[x]]+1]]);
}
void Jiuyuan()
{cnt=0;cin>>n>>m>>sb;for(int i=1;i<=n;i++)//读入p[i],映射p[i]这个数的位置,清空之前的set,插入一个很大的数 {cin>>p[i];id[p[i]]=i;st[i].clear(); st[i].insert(1e9);}for(int i=1;i<=m;i++){cin>>q[i];st[q[i]].insert(i);}for(int i=1;i<=n;i++)//f数组含义是这个数第一次出现的位置 {f[p[i]]=*st[p[i]].begin();}for(int i=1;i<n;i++) {cnt=cnt+(f[p[i]]>f[p[i+1]]);}if(cnt==0){cout<<"YA"<<endl;}else cout<<"TIDAK"<<endl;while(sb--){ll x,w;cin>>x>>w;updata(x,0);q[x]=w;updata(x,1);if(cnt==0){cout<<"YA"<<endl;}else cout<<"TIDAK"<<endl;}
}
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll T=1;cin>>T;while(T--){Jiuyuan();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1557952.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

2024_10_8 系统进展

改进位置 发现是label_api里藏了我需要改进的东西 settings.py 数据库 我这边电脑上使用的是windows 192 vue.config.js 陈家强是这样设置的 module.exports {publicPath: process.env.NODE_ENV production? /: /,assetsDir: static,// css: {// extract: false// },…

【C++ 11】for 基于范围的循环

文章目录 【 1. 基本用法 】【 2. for 新格式的应用 】2.1 for 遍历字符串2.2 for 遍历列表2.3 for 遍历的同时修改元素 问题背景 C 11标准之前&#xff08;C 98/03 标准&#xff09;&#xff0c;如果要用 for 循环语句遍历一个数组或者容器&#xff0c;只能套用如下结构&#…

“我养你啊“英语怎么说?别说成I raise you!成人学英语到蓝天广场附近

“我养你啊”这句经典台词出自周星驰自导自演的电影《喜剧之王》。在这部电影中&#xff0c;周星驰饰演的尹天仇对张柏芝饰演的柳飘飘说出了这句深情而动人的台词。这句台词出现在柳飘飘即将离去之时&#xff0c;尹天仇鼓起勇气&#xff0c;用它作为对柳飘飘个人困境的承诺&…

VIP与MPIO,备胎管理谁更强

我爱上班&#xff0c;风雨无阻 大家每天去上班&#xff0c;不可能只有一条路线 可以地铁、也可以开车或公交 万一地铁停运或车子限行&#xff0c;至少还有其他线路选择 企业级存储也是如此 关键业务的存储访问一般有多条路径 网络或单个存储设备故障后 访问路径会自动切换…

集合框架05:List接口使用、List实现类、ArrayList使用

视频链接&#xff1a;13.11 ArrayList使用_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1zD4y1Q7Fw?p11&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.List接口使用代码举例 package com.yundait.Demo01;import java.util.ArrayList; import java.util.List;pu…

轻松掌握IP代理服务器设置方法,网络冲浪更自如

在数字化时代&#xff0c;互联网就像是一片浩瀚的海洋&#xff0c;而IP代理服务器就如同我们在这片海洋中航行的指南针。通过使用代理IP&#xff0c;我们可以更方便地访问全球网络资源&#xff0c;提升网络安全性。本文将为您详细介绍IP代理服务器的设置方法&#xff0c;让您在…

指针——指针数组、数组指针

&#xff08;一&#xff09;指针数组 1、本质&#xff1a;指针数组的本质任然是数组 2、基本格式&#xff1a;int* arr[5] 3、应用&#xff1a;如尝试使用指针来模拟二维数组 先来看代码 #include<stdio.h> //指针数组——模拟实现二维数组 int main() {int a[5] {…

本科毕业论文不会写怎么办,论文查重显示80%多

如果本科毕业论文不会写且查重显示 80% 多&#xff0c;可以从以下几个方面着手解决&#xff1a; 一、调整心态&#xff0c;正视问题 首先&#xff0c;不要惊慌和焦虑。高重复率并不意味着无法挽救&#xff0c;要相信自己有能力解决这个问题。把它看作是一个学习和提升的机会&a…

Matlab实现海鸥优化算法优化回声状态网络模型 (SOA-ESN)(附源码)

目录 1.内容介绍 2部分代码 3.实验结果 4.内容获取 1内容介绍 海鸥优化算法&#xff08;Seagull Optimization Algorithm, SOA&#xff09;是一种受海鸥觅食和飞行行为启发的群体智能优化算法。SOA通过模拟海鸥在空中搜寻食物、聚集和分散的行为模式&#xff0c;来探索和开发…

Leecode刷题之路第13天之罗马数字转整数

题目出处 13-罗马数字转整数-题目出处 题目描述 个人解法 思路&#xff1a; todo 代码示例&#xff1a;&#xff08;Java&#xff09; todo复杂度分析 todo 官方解法 13-罗马数字转整数-官方解法 方法1&#xff1a;模拟 思路&#xff1a; 代码示例&#xff1a;&#xff0…

ctf.bugku - game1

题目来源&#xff1a; game1 - Bugku CTF 访问页面&#xff0c;让玩游戏 得到100分&#xff0c;没拿到flag 查看页面源码&#xff0c; GET请求带有 score、IP、sign 三个参数&#xff0c;最后的flag 应该跟分数有关&#xff1b; 给了score一个99999分数&#xff0c; sign 为 …

dotnet7==windows ZIP方式安装和web demo和打包

下载ZIP Download .NET 7.0 (Linux, macOS, and Windows) 解压 创建项目 mkdir MyWebApp cd MyWebApp "C:\Users\90816\Downloads\dotnet-sdk-7.0.317-win-x64\dotnet.exe" new webapp -n MyWebApp 运行项目 "C:\Users\90816\Downloads\dotnet-sdk-7.0.317-…

同城O2O系统源码与跑腿配送平台的架构设计与开发方案详解

今天&#xff0c;笔者将与您一同深入探讨同城O2O系统的源码及跑腿配送平台的架构设计与开发方案&#xff0c;助力开发者和企业在这一领域的实践与探索。 一、O2O系统概述 在同城O2O模式中&#xff0c;用户可以通过手机应用或网页平台下单&#xff0c;而配送员则根据订单信息迅…

QT 优化登录框

作业 优化登录框&#xff1a; 当用户点击取消按钮&#xff0c;弹出问题对话框&#xff0c;询问是否要确定退出登录&#xff0c;并提供两个按钮&#xff0c;yes|No&#xff0c;如果用户点击的Yes&#xff0c;则关闭对话框&#xff0c;如果用户点击的No&#xff0c;则继续登录 …

信息安全——应急响应

应急响应部分 1、提交攻击者的IP地址 简单过一遍apache日志&#xff0c;less /var/log/apache2/access.log.1 很明显的可以发现大量的扫描流量&#xff0c;如下&#xff1a; 大量的并发连接&#xff0c;且访问资源均返回404&#xff0c;且UA不正常&#xff0c;从这里可以得…

【重学 MySQL】六十二、非空约束的使用

【重学 MySQL】六十二、非空约束的使用 定义目的关键字特点作用创建非空约束删除非空约束注意事项 在MySQL中&#xff0c;非空约束&#xff08;NOT NULL Constraint&#xff09;是一种用于确保表中某列不允许为空值的数据库约束。 定义 非空约束&#xff08;NOT NULL Constra…

Prometheus + Grafana 监控 MySQL 数据库

文章目录 1、前置介绍2、搭建流程2.1、安装 Docker2.2、安装 MySQL2.3、安装 MySQL Exporter2.4、安装 Prometheus2.5、安装 Grafana 1、前置介绍 本次监控平台搭建&#xff0c;我使用2台阿里云服务器来完成本次的搭建部署操作&#xff0c;配置如下&#xff1a; 阿里云ECS1&am…

《CTF 特训营》:网络安全竞赛的进阶指南

在网络安全领域日益受到重视的今天&#xff0c;CTF&#xff08;Capture The Flag&#xff09;竞赛作为一种检验和提升网络安全技能的方式&#xff0c;受到了越来越多爱好者的关注。而《CTF 特训营》这本书&#xff0c;无疑是一本帮助读者深入了解 CTF 竞赛的优秀读物。 一、书籍…

基于LORA的一主多从监测系统_AHT20温湿度传感器

1&#xff09;AHT20温湿度传感器 这个传感器&#xff0c;网上能找到的资料还是比较多的&#xff0c;我们使用的是HAL硬件i2c&#xff0c;相比于模拟i2c&#xff0c;我们不需要过于关注时序问题&#xff0c;我们只需要关心如何获取数据以及数据如何处理&#xff0c;下面以数据手…

探索Ultralytics YOLO11在视觉任务上的应用

前言 在人工智能持续发展的当下&#xff0c;有一点是确凿无疑的&#xff1a;模型正变得愈发优秀、快捷和智能。就在人们以为YOLO系列已登峰造极之时&#xff0c;Ultralytics推出了最新升级版——YOLO11。需要注意的是&#xff0c;这里不是YOLOv11&#xff0c;他们简化了命名方…