[CF1311B] WeirdSort

Solution
按照 \(p[i]\) 进行分段,如果某个 \(k\) 不存在 \(p[i]=k\),那么就把 \(i,i+1\) 分割开
处理出每一段的左端点和右端点
进而处理出每段的最小值和最大值
如果存在第 \(i\) 段的最大值大于第 \(i+1\) 段的最小值,就输出 NO
#include <bits/stdc++.h>
using namespace std;
#define reset(x) memset(x,0,sizeof x)
const int N = 1005;
int T,n,m,a[N],p[N],b[N],l[N],r[N],mx[N],mn[N];
signed main() {
cin>>T;
while(T--) {
reset(a); reset(p); reset(b);
reset(r); reset(l);
reset(mx); reset(mn);
cin>>n>>m;
for(int i=1;i<=n;i++) {
cin>>a[i];
}
for(int i=1;i<=m;i++) {
cin>>p[i];
b[p[i]]=1;
}
int ind=1;
l[1]=1;
for(int i=1;i<=n;i++) {
if(b[i]==0) r[ind]=i, l[++ind]=i+1;
}
--ind;
for(int i=1;i<=ind;i++) {
mx[i]=0; mn[i]=1e9;
for(int j=l[i];j<=r[i];j++) {
mx[i]=max(mx[i],a[j]);
mn[i]=min(mn[i],a[j]);
}
}
int flag=1;
for(int i=1;i<ind;i++) {
if(mx[i]>mn[i+1]) flag=0;
}
if(flag) puts("YES");
else puts("NO");
}
}
[CF1311B] WeirdSort的更多相关文章
- Codeforces Round #624 (Div. 3) B. WeirdSort(排序)
output standard output You are given an array aa of length nn . You are also given a set of distinct ...
- Codeforce1311B. WeirdSort (冒泡排序)
You are given an array a of length n. You are also given a set of distinct positions p1,p2,-,pm, whe ...
- Codeforces Round #624 (Div. 3)(题解)
Codeforces Round #624 (Div.3) 题目地址:https://codeforces.ml/contest/1311 B题:WeirdSort 题意:给出含有n个元素的数组a,和 ...
- Codeforces Round #624 (Div. 3)(题解)
A. Add Odd or Subtract Even 思路: 相同直接为0,如果两数相差为偶数就为2,奇数就为1 #include<iostream> #include<algor ...
随机推荐
- devops与CICD
前言 devops的概念已经在前一章已经说过了,下面介绍CICD的概念. CI(Continuous Integration,持续集成) 持续集成中,开发人员将会频繁地向主干提交代码,这些新提交的代码 ...
- REST 风格架构
------------------------------ 时间不多了, 抓紧做一些有意义的事情 REST 风格架构 1. 他是面向资源进行开发的 2. 他是基于HTTP 协议进行开发 ...
- CAD制图系列之中心线画法
我们将做个简单的笔记: CAD中心线怎么画 CAD中心线一般为点划线,画法很简单,首先先设置线型 一般步骤为: 1.首先,打开CAD,点击进入图层特性管理器 2.在图层特性管理器中点击线型进行设置 3 ...
- python学习Day05--字典
[主要内容] 1. dict 用大括号{} 括起来. 内部使用key:value的形式来保存数据 {'jay':'周杰伦', "jj":'林俊杰'} 注意:字典的key必须是可哈希 ...
- k3s首季在线培训来袭!本周四晚,线上见!
筹备已久的k3s在线培训终于要和大家见面啦! k3s是一款适用于边缘计算场景以及IoT场景的轻量级Kubernetes发行版,经过CNCF的一致性认证.由业界应用最广泛的Kubernetes管理平台R ...
- Java中的代码点与代码单元
在Java中,什么是代码点与代码单元? 代码点(Code Point):在 Unicode 代码空间中的一个值,取值 U+0000 至 U+10FFFF,代表一个字符. 其中U+0000到U+FFFF ...
- MFC对话框和控件
对话框和控件 对话框是Windows应用程序中一种常用的资源,其主要功能是输出信息和接收用户的输入数据.控件是嵌入在对话框中或其它父窗口中的一个特殊的小窗口,它用于完成不同的输入.输出功能.对话框与控 ...
- LoadIcon的使用
LoadIcon msdn: Loads the specified icon resource from the executable (.exe) file associated with an ...
- Huffman编码和解码
一.Huffman树 定义: 给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径达到最小,这样的二叉树称为最优二叉树,也称为霍夫曼树(Huffman树). 特点: Huffman树 ...
- CentOS 6.4安装mongo的php扩展包
最近安装mongo相关内容,因mongodb下载好解压即可使用,在这里我就不多说了,这里我分享下如何安装mongo的php扩展 首先下载扩展包https://github.com/mongodb/mo ...