CodeForces 920C Swap Adjacent Elements

2023-11-08

题目大意

题目链接
给定一个序列,这个序列可以理解为一个1~n的全排列,再给出一个01串,1表示可以将索引ii+1进行交换,且交换可以发生任意次,0表示不可以。
问最后能不能将序列升序排列。

题解

几乎 秒杀,因为简单。
判断每个索引处的数能不能回到自己应该在的位置即可,若都能回去,则输出YES,反之输出NO
a[i]>i时,a[i]应当处于位置i,判断从位置ia[i]-1是否都可以进行交换,即是否全为1,若全为1说明其可以回到应在的位置,反之不可以。
类似的当a[i]<i时,判断从位置a[i]i-1是否都可以进行交换。
我采用前缀和来判断是否全为1

代码

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5+10;
int a[N], b[N], sum[N], n;
string str;
int main()
{
	cin>>n;
	for(int i = 1;i <= n;i ++) cin>>a[i];
	cin>>str;int len = str.length();
	for(int i = 0;i < len;i ++) b[i+1] = str[i] - '0', sum[i+1] = sum[i] + b[i+1];
	
	for(int i = 1;i <= n;i ++) {
		if(a[i] > i) {
			if(sum[a[i] - 1] - sum[i - 1] == a[i] - i) continue;
			else {
				puts("NO");
				return 0;
			}
		} else if(a[i] < i) {
			if(sum[i - 1] - sum[a[i] - 1] == i - a[i]) continue;
			else {
				puts("NO");
				return 0;
			}
		}
	}
	puts("YES");	

	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CodeForces 920C Swap Adjacent Elements 的相关文章

  • 2017年蓝桥杯B组C/C++省赛-K倍区间

    题目 题解 思维 暴力的话是会超时的 但也可以骗点分 采用差分数组暴力 讲一下AC思路 统计出来每个前缀和取模 k k k后结果的个数 比如 c n t
  • 2021-07-21训练日记upc联通数(思维)

    A 联通数 题目描述 数学高手小G最近发现了一种新型的数 他首先在草稿纸写下任意长度的数字串kkkkkkkkkkk 1 k 9 并在其中间添加加号 且相邻两个加号之间至少含有两个数字k 默认数字串第一个数字前与最后一个数字后也有两个加号 然
  • 2018年蓝桥杯省赛-日志统计

    题目 题目链接 题解 贪心 尺取 首先按照时间从小到大 对输入的每一组 t s ts ts和 i d id id进行排序 遍历每一对 取当
  • 2020年蓝桥杯国赛-答疑

    题目 题目链接 题解 贪心 有点像 排队打水 比较好想 而且我甚至都能证明 贪心思路 按照 s a e s a e s a e 从小到大排序即可 证明 首先 每个人的
  • Codeforces 1554C - Mikasa MEX

    input 5 3 5 4 6 3 2 69 696 123456 654321 output 4 3 0 640 530866 给出n m从n 0 gt n m中最小为出现的非负整数 int main int read while int
  • 1010 Radix (25 分)

    题目 题目链接 题解 二分 数学 先说几点注意事项 开 LL 最高进制不是35 可以更高 枚举可能的进制时存在爆LL的情况 整体思路 先计算出知道进制的那个数对应的十进制数 二分进制 找到某个进制使得另一个数对应的十进制数与已知的十进制数相
  • Codeforces Round #723 (Div. 2)B. I Hate 1111

    Description You are given an integer x Can you make x by summing up some number of 11 111 1111 11111 You can use any num
  • Group Project-思维

    链接 来源 牛客网 题目描述 The big day has fifinally arrived today you are going to form groups of two in which you will do the end
  • [leetcode] 1675. 数组的最小偏移量

    题目链接 来源 力扣 LeetCode 链接 https leetcode cn problems minimize deviation in array 著作权归领扣网络所有 商业转载请联系官方授权 非商业转载请注明出处 示例 1 输入
  • Modulo Summation——UPC

    题目描述 You are given N positive integers a1 a2 aN For a non negative integer m let f m m mod a1 m mod a2 m mod aN Here X m
  • edu99 div.2 Sequence and Swaps优雅的暴力

    time limit per test1 5 seconds memory limit per test512 megabytes inputstandard input outputstandard output Example inpu
  • UPC思维题--移动

    题目描述 考虑333的立方体 有六个面 每个面有九个正方形 染色方法如下 角上的方格是red 中心是green 其他为blue 初始有一个机器人站在立方体顶面中心 面朝一个blue方格 它将接受到一系列如下指令 L 左转90度 R 右转90
  • APAC 2013 部分题解

    目录 A The Alphabet Sticker C Increasing Shortest Path D Cup of Cowards E Balloons Colors F NASSA s Robot G The Stones Gam
  • 蓝桥杯2019年第十届省赛真题-扫地机器人

    题目 题目链接 题解 二分 贪心 二分模板 看到这道题第一时间想到的就是二分和动规 仔细一看二分有戏 能check出来 所以决定用二分好好想想 主要是因为我动规太菜了 怕了 二分时间 准确的说我们二分的不是时间 而是覆盖范围 也就是枚举每个
  • 2021蓝桥杯模拟赛-删除字符

    题目 题目链接 题解 贪心 贪心思路 将整个字符串视为若干段降序排列的子串 即 从左边开始向右遍历 遇到逆序的就删除 再对新的串从头遍历找逆序 不停地重复整个过程是为了保证删除的尽可能靠前 贪心 如果整个字符串都顺序了 但是还要删 那么就从
  • Xor Sum 2二分/尺取 区间异或和等于区间和的方案数

    题目描述 There is an integer sequence A of length N Find the number of the pairs of integers l and r 1 l r N that satisfy th
  • 蓝桥杯2019年第十届省赛真题-Fibonacci 数列与黄金分割

    题目 题目链接 题解 我未曾设想的道路 我居然以为是高精度的矩阵快速幂 差点心态崩了 直接看了题解 1 50 打个表 发现到20 小数点后八位就不变了 所以 解决 代码 include
  • Early Orders单调栈

    链接 题目描述 You are given a list of integers n and a number k It is guaranteed that each i from 1 to k appears in the list a
  • CodeForces 1025C Plasticine zebra

    题目大意 题目链接 给定一个由w和b组成的字符串 可以操作任意次 每次操作 0次或多次 可以将字符串分割成左右两个子串 左 右侧子串均前后颠倒 问最终字符串中最多可以有多少个w和b交错 w和b无所谓顺序 题解 构造 比较好想 总述 当最左端
  • Educational Codeforces Round 98 (Rated for Div. 2)B-Toy Blocks

    B Toy Blocks time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Y

随机推荐

  • 第一个Echarts

    安装node js教程 解决cnpm v 不能运行的问题 使用pycharm进行代码编写 步骤 1 在pycharm中新建一个文件夹 在文件夹中新建一个html file 2 在pycharm project中 找到新建文件夹 在文件夹中新
  • 20仿函数(functors)

    1 仿函数概述 仿函数 functors 是早期的命名 新名称是函数对象 function objects 函数对象是指一种具有函数特质的对象 所以仿函数的本质就是一个行为类似函数的对象 仿函数主要用途是搭配STL算法 这种东西在调用者可以
  • Search for a Range

    Given an array of integers nums sorted in ascending order find the starting and ending position of a given target value
  • Dubbo 、 OpenFegin 远程服务调用的使用区别

    Dubbo 与 OpenFegin 都利用于远程调用层面 其中包括协议 负载均衡等都有不同的点 并且在使用上面也有不同的形式 简约记录一下两者的用法 1 服务端 dubbo 1 添加dubbo依赖 2 服务类添加 DubboService
  • jmeter——生成多样的接口自动化html报告

    jmeter 生成多样的接口自动化html报告 一 实现目的 二 实现效果 1 jmter自带的HTML报告 2 jmeter ant报告优化 3 批量执行jmeter工具 4 jmeter allure生成测试报告 三 实现方案 1 jm
  • 数据结构与算法——线性表

    个人主页 bit 系列专栏 Linux Ubuntu 入门必看 C语言刷题 目录 2 1线性表的定义和特点 2 2 案例引入 2 3 线性表的定义 2 1线性表的定义和特点 线性表是具有相同特新的数据元素的一个有限序列 列如 同一线性表中的
  • 解决:Error [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\辰之星\AppData\Roaming\npm\node_modules\n

    解决 Error ERR REQUIRE ESM require of ES Module C Users 辰之星 AppData Roaming npm node modules nrm node modules open index j
  • 特征工程是什么?

    特征工程是指对原始数据进行预处理和转换 以提取出对机器学习算法建模有用的特征的过程 特征工程是机器学习中非常重要的一步 它可以显著影响模型的性能 下面是一些常见的特征工程技术和方法 数据清洗 处理缺失值 异常值和重复值 确保数据的质量和完整
  • taro请求工具封装

    taro框架是一个跨端兼容的开发框架 自带了请求相关的API 虽然灵活 但是封装程度并不高 会导致比较多的代码冗余 因此封装了一个请求相关的工具 思路如下 1 请求和响应需要拦截器 针对不同的情况做不同的处理 2 开发中分为开发 测试 生成
  • Ajax跨域问题

    什么是跨域问题 跨域问题来源于JavaScript的 同源策略 即只有 协议 主机名 端口号 如存在 相同 则允许相互访问 也就是说JavaScript只能访问和操作自己域下的资源 不能访问和操作其他域下的资源 跨域问题是针对JS和ajax
  • ELK多个日志文件创建多个项目索引

    一 背景 我的elk架构是filebeat redis logstash elasticsearch kibana 我的想法是 我一台服务器多个程序有多个日志文件 在kibana里面想创建不通项目索引 指定不同日志文件 二 问题及解决思路
  • python环境安装和激活

    开始学习python了 环境的安装对与新手来说就变的比较麻烦 这里就会为大家介绍pycharm和python解释器的安装 python解释器的安装 这里介绍windows安装方式 mac安装方法类似 python解释器下载地址 https
  • STL源码阅读-traits与迭代器

    迭代器模式 提供一种方法 使之能够依序访问容器的各个元素 而又无需暴露容器的内部表述方式 STL设计的中心思想在于将数据容器和算法分离开 容器和算法分开设计 迭代器则是两者之间的胶着剂 一般迭代器的设计与容器细节相关 所以一般交给容器的设计
  • 《Effective C++》 全书内容提炼总结

    个人博客地址 https cxx001 gitee io 本文阅读说明 孔子云 取乎其上 得乎其中 取乎其中 得乎其下 取乎其下 则无所得矣 对于读书求知而言 这句古训教我们去读好书 最好是好书中的上品 经典书 Effective C 就是
  • 通过CSS实现 文字渐变色 的两种方式

    主要实现文字渐变色有两种方式 background 属性 mask 属性 1 background 属性 效果图如下 span 这 span
  • 一个30岁光棍的内心独白

    人已三十开外 至今独赏天籁 好想有个太太 为我洗衣做菜 现实却很无奈 让我继续等待 也因寂寞难耐 谈过几次恋爱 谁知屡战屡败 轻轻松松被踹 其实我也奇怪 为啥总遭淘汰 历尽打击伤害 总算知道大概 嫌我不讲穿戴 嫌我长的不帅 熊猫长的不帅 却
  • 代价函数(Cost Function)

    基本概念 代价函数也被称作平方误差函数 有时也被称为平方误差代价函数 我们之所以要求出误差的平方和 是因为误差平方代价函数 对于大多数问题 特别是回归问题 都是一个合理的选择 还有其他的代价函数也能很好地发挥作用 但是平方误差代价函数可能是
  • 腾讯云服务器开通root用户

    01 开通root用户 sudo passwd root 输入 root 的密码 按Enter 重复输入 root 的密码 按Enter 返回如下信息 即表示 root 密码设置成功 passwd password updated succ
  • 信号完整性之差分对

    差分传输 差分互连方式中 使用两条传输线来传输信号 差分驱动器有两个输出端 这两个输出端同时输出信号 理想情况下两个信号边沿对齐 但是翻转方向相反 如下图所示 两个信号沿着各自的传输线传输 到达接收器时 接收器对两个信号进行差分检测 从两个
  • CodeForces 920C Swap Adjacent Elements

    题目大意 题目链接 给定一个序列 这个序列可以理解为一个1 n的全排列 再给出一个01串 1表示可以将索引i和i 1进行交换 且交换可以发生任意次 0表示不可以 问最后能不能将序列升序排列 题解 几乎 秒杀 因为简单 判断每个索引处的数能不