题目链接

题目大意

真难读
问给定的序列能不能用题中所给的算法生成。
比如,题目中举的例子:原序列a: [ 2 3 * * 1 ],先得出 r 数组 [ 3, 3 ,3 ,4 , * ] 。r 数组的意思是:原序列当前位置右边第一个空格的位置,比如原序列 a 索引为1的位置的右边第一个空位是 3。索引为2的位置的右边第一个空位是 3。索引为4的位置的右边第一个空位是它自己 4 。索引为5的位置的右边没有空位 标记为 *
然后得出count数组,对 r 数组中的出现的数字计数 为 [ 0 , 0 , 3 , 1 ,0 ]。3代表3在 rrr 里面出现了3次。然后count数组中最大的数字出现的位置,就是原序列中选择的位置。这里count数组中索引为3的位置数字最大为3,所以原序列选择第3个位置填充数字。

题目思路

其实差不多懂了怎么判断,还是没写出来qwq

假设从 1到n 构造一个序列,在放 i 的时候,如果 i - 1 的右边还有空位,就必须放在 i -1 后面。如果 i -1 右边一位没有空位了,就可以任意放。比如,[* * 2 * 1 ],放3的时候,就只能是 [* * 2 3 1] 。然后 444 就可以随便放,因为3的右边一位已经没有空位了。
所以就遍历一遍看每个数字的位置是否合法。从 1 到 n,检查数字 i 是否合理的时候,这个数字 i 的右边一位,要么是 i +1 ,要么就是被 小于 i 的数字填过了。

代码

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int t,n,a[maxn];
int main(){scanf("%d",&t);while(t--){bool flag=1;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}for(int i=1;i<=n-1;i++){if(2<=a[i+1]-a[i]){flag=0;printf("No\n");break;}}if(flag){printf("Yes\n");}}return 0;
}

参考链接:https://blog.csdn.net/cheng__yu_/article/details/105727930

Codeforces Round #637 (Div. 2) C. Nastya and Strange Generator 题解(阅读理解+简单思维)相关推荐

  1. 欠债还钱、Codeforces Round #637 (Div. 2) -D(多重背包)

    Description llk经常和wy一起去yh小饭馆吃盖浇饭,一天他们吃完后llk把两个人的钱一起付了,但是wy不想欠llk的钱.现在wy手中有一些散钱,llk手中也有一些散钱,wy想知道能不能刚 ...

  2. Codeforces Round #732 (Div. 2) C. AquaMoon and Strange Sort 思维

    传送门 文章目录 题意: 思路: 题意: 给你nnn个数,每个数初始方向是向右,每次可以交换相邻两个位置并且将这两个位置的方向调换,问这个序列的最终状态能否是非递减且方向都向右. n≤1e5,ai≤1 ...

  3. Codeforces Round #637 (Div. 2) - Thanks, Ivan Belonogov! B.Nastya and Door

    题目链接 On February 14, Denis decided to give a Valentine to Nastya and did not come up with anything b ...

  4. Codeforces Round #637 (Div. 2) - Thanks, Ivan Belonogov! C. Nastya and Strange Generator

    题目链接 Being upset after this behavior of Nastya, Denis was very sad. Nothing could make the rejected ...

  5. Codeforces Round #637 (Div. 2) - Thanks, Ivan Belonogov! D. Nastya and Scoreboard题解(记忆化搜索)

    题目链接 题目大意 一个n个数码位的分数板,每一个数码位都是一个七段数码管,现在给出每个数码位的显示情况,问再点亮k段数码管的话能显示的最大的数是多少,如果不能构成一串数字,就输出-1.答案允许有前导 ...

  6. Codeforces Round #546 (Div. 2) B. Nastya Is Playing Computer Games

    链接:https://codeforces.com/contest/1136/problem/B 题意: 有n个井盖,每个井盖上有一个小石头. 给出n和k,k表示刚开始在第k个井盖上方. 有三种操作, ...

  7. Codeforces Round #546 (Div. 2) C. Nastya Is Transposing Matrices(矩阵转置的性质)

    题目链接: C. Nastya Is Transposing Matrices 题意: 给定两个大小均为n,m的矩阵A,B,每次操作可选择A中的一个正方形子矩阵进行矩阵转置,可进行任意次操作,问能否将 ...

  8. Codeforces Round #375 (Div. 2) B. Text Document Analysis(字符串处理,简单题目)

    题目链接:http://codeforces.com/contest/723/problem/B [分析]求不在括号里的单词的长度和在括号里的单词的个数.立个flag表示所处状态就好了,0表示不在括号 ...

  9. Codeforces Round #700 (Div. 2)(B,C,D1,D2详细题解)

    C C C是一个非常有意思的题(赛后被hack哈哈哈哈) 其他似乎就没什么好玩的了 1480 B.The Great Hero(模拟) 由于需要打死每个怪物,打死第 i i i个怪物需要攻击 k i ...

最新文章

  1. Java并发编程71道面试题及答案
  2. java 反射获取属性名和值_阿里P8架构师核心知识点整理:Java基础+spring原理+微服务+算法...
  3. GDCM:读取gdcm::DataSetHelper的测试程序
  4. python控制台输出到文件_Python print 立即打印内容到重定向的文件
  5. 2PC到3PC到Paxos到Raft到ISR
  6. oracle的jdbc语句,Java Oracle jdbc SELECT语句
  7. 蓝屏dump分析教程
  8. 无线路由器建立usb共享打印服务器,无线路由器USB网络共享管理设置方法
  9. 测试计算机性能的软件比较专业,用什么软件可以测试计算机的整体性能?
  10. 远程控制软件teamviewer简介
  11. VBA解锁/上锁worksheet和workbook
  12. Bootstrap3部分理解
  13. 基于JAVA藏宝阁游戏交易系统计算机毕业设计源码+系统+lw文档+部署
  14. Creating a universal SNP and small indel variant caller with deep neural networks理解
  15. 腾讯云-产品开通和密钥查看
  16. 到处excel表格的数据和页面的数据不一致
  17. 使用calibre制作带目录的mobi电子书
  18. 逻辑左移、逻辑右移、算术左移、算术右移区别
  19. Java学习参考书籍
  20. Cobalt Strike使用教程——基础篇

热门文章

  1. 带附件的自动邮件发送系统
  2. vivox23android系统耗电25,vivox23电池不耐用怎么回事
  3. 手机电池不耐用怎么办,一招叫你恢复如新
  4. VC++程序设计与应用--图形和文本输出
  5. win10电脑插耳机没声音_如何免费的用Win10对电脑的声音进行录音
  6. 算法与程序设计(六):分支限界法
  7. lisp倒入excel数据画图_如何将EXCEL中的数据导入到CAD中,绘制成曲线|
  8. php mysql 权限_mysql权限
  9. centos6 安装bbr_centos6.5安装bbr
  10. 随机验证码如何在html里设置颜色,js随机生成验证码以及随机颜色