CF 1891A 学习笔记

原题

A. Sorting with Twos

time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

You are given an array of integers 𝑎1,𝑎2,…,𝑎𝑛�1,�2,…,��. In one operation, you do the following:

  • Choose a non-negative integer 𝑚�, such that 2𝑚≤𝑛2�≤�.
  • Subtract 11 from 𝑎𝑖�� for all integers 𝑖�, such that 1≤𝑖≤2𝑚1≤�≤2�.

Can you sort the array in non-decreasing order by performing some number (possibly zero) of operations?

An array is considered non-decreasing if 𝑎𝑖≤𝑎𝑖+1��≤��+1 for all integers 𝑖� such that 1≤𝑖≤𝑛−11≤�≤�−1.

Input

The first line contains a single integer 𝑡� (1≤𝑡≤1041≤�≤104) — the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer 𝑛� (1≤𝑛≤201≤�≤20) — the length of array 𝑎�.

The second line of each test case contains 𝑛� integers 𝑎1,𝑎2,…,𝑎𝑛�1,�2,…,�� — the integers in array 𝑎� (0≤𝑎𝑖≤10000≤��≤1000).

Output

For each test case, output "YES" if the array can be sorted, and "NO" otherwise.

Example

input

Copy

 

8

5

1 2 3 4 5

5

6 5 3 4 4

9

6 5 5 7 5 6 6 8 7

4

4 3 2 1

6

2 2 4 5 3 2

8

1 3 17 19 27 57 179 13

5

3 17 57 179 92

10

1 2 3 4 0 6 7 8 9 10

output

Copy

YES
YES
YES
NO
NO
NO
YES
YES

Note

In the first test case, the array is already sorted in non-decreasing order, so we don't have to perform any operations.

In the second test case, we can choose 𝑚=1�=1 twice to get the array [4,3,3,4,4][4,3,3,4,4]. Then, we can choose 𝑚=0�=0 once and get the sorted in non-decreasing order array [3,3,3,4,4][3,3,3,4,4].

In the third test case, we can choose 𝑚=0�=0 once and get the array [5,5,5,7,5,6,6,8,7][5,5,5,7,5,6,6,8,7]. Then, we can choose 𝑚=2�=2 twice and get the array [3,3,3,5,5,6,6,8,7][3,3,3,5,5,6,6,8,7]. After that, we can choose 𝑚=3�=3 once and get the sorted in non-decreasing order array [2,2,2,4,4,5,5,7,7][2,2,2,4,4,5,5,7,7].

For the fourth and fifth test case, it can be shown that the array could not be sorted using these operations.

原题链接

传送门 

代码

#include<bits/stdc++.h>
using namespace std;int a[30];int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);bool flag=true;for(int i=1;i<=n;i++){scanf("%d",&a[i]);}for(int i=1;i<=n;i++){if(a[i-1]>a[i]&&i!=2&&i!=3&&i!=5&&i!=9&&i!=17){flag=false;break;}}if(flag==true)	puts("Yes");else	puts("No");memset(a,0,sizeof a);}return 0;
}

总结

1.题目的意思是说,输入一个数列,询问我们能否经过一定的操作把该数列修改成一个非严格的升序数列

2.操作的具体步骤是,首先选择一个非负的整数m,使得2^m<=n,n表示的是数列的长度,然后对数列里面1~2^m个元素,每一个元素进行减一的操作

3.如果可以得到非严格的上升序列,就输出yes,否则输出no

4.n的最大值是20,满足条件的2的整数次幂是,1,2,4,8,16,可以发现如果超过可以修改的范围的降序部分,就一定不能经过修改达到要求,此时输出no

5.事实上,经过观察可以发现,只要不是2的整数次幂数字作为下标对应的元素大于下一个元素,就无法实现修改,比如说给定一个数列,1 2 3 2 5,第三个数字3对应的下标是3(假设下标从1开始使用),下标3不是2的整数次幂,元素3大于下一个元素2,我们不能割裂的对元素3进行修改,假设我们要修改元素3,就一定会同时修改元素2,元素3和元素2之间的相对大小关系没有发生改变(这里说的元素2指的是下标为4的元素2) 

6.根据上面的描述,使用循环进行条件判断即可,注意a数组是全局变量,没有使用的空间的数值都是0,a数组每使用一次都需要初始化一次,防止上一次输入的数据对当前产生影响

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多个视频怎么生成一个二维码?二维码看视频的制作方法

二维码能放入多个视频吗&#xff1f;现在用二维码看视频是很流行的一种方式&#xff0c;不仅符合现在人的行为习惯&#xff0c;而且还不需要占用自身的容量空间&#xff0c;能够即时的获取视频内容。那么当有多个视频需要展示&#xff0c;但是想要放到一个二维码中&#xff0c;…

集团投融资大数据平台解决方案

一、项目背景 项目为集团型公司大数据平台项目&#xff0c;整个项目周期约为6个月&#xff0c;整体呈现了对外的数据大屏驾驶仓和对内的看板报表&#xff0c;减少了客户内部数据上报和报表制作的重复工作量&#xff0c;为集团数据决策奠定基础。 二、项目目标 战略层&#xff…

局部保持投影(Locality preserving projections,LPP)

局部保持投影&#xff08;Locality preserving projections&#xff0c;LPP&#xff09; 方法概述 核心思想 有映射 Y m ∗ n f ( X d ∗ n ) \underset{m*n}{Y}f(\underset {d*n}X) m∗nY​f(d∗nX​)&#xff0c;能够实现将d维的样本变换到m维空间之中 假设&#xff1a;对…

ESP32 Arduino实战传感器篇-- DHT11 DHT22 使用 Web 服务器显示值

该项目采用 ESP32 作为控制设备,连接到现有的 WiFi 网络并创建 Web 服务器。当设备连接到该 Web 服务器时,ESP32 将从 DHT11/DHT22 传感器读取温度和相对湿度,并将其发送到设备的 Web 浏览器,并具有良好的界面。兴奋的?让我们开始吧! ESP32 内置了温度传感器,为什么不使…

咖啡馆管理系统点餐外卖小程序效果如何

咖啡一直是很多人喜欢的饮品&#xff0c;比如有些地区的人非常喜欢&#xff0c;熬夜加班醒脑等&#xff0c;咖啡领域市场规模逐年增加&#xff0c;相应的从业商家也在增加&#xff0c;近些年随着线上生态崛起&#xff0c;传统线下咖啡馆经营痛点显露出来。 通过【雨科】平台搭建…

目标检测算法 - YOLOv4

文章目录 1. 简介2. YOLOv4整体结构3. Backbone4. Neck 1. 简介 YOLOv4是YOLOv3的改进版。YOLOv4并不是原YOLO项目的作者。发表于CVPR2020。 改进&#xff1a; 主干特征提取网络&#xff1a;Darknet53 -> CSPDarknet53特征金字塔&#xff1a;SPP&#xff0c;PAN分类回归层…

每天学习一点点之 Tomcat 是如何清除过期 Session 的

今天使用一种很临时的方案解决 Session 泄漏的问题&#xff1a;缩短 Session 的过期时间。这种方法虽然简单&#xff0c;但却非常有效。然而&#xff0c;这引发了一个问题&#xff1a;我们应该将过期时间设置为多短呢&#xff1f;在 Spring Boot 中&#xff0c;最短的过期时间是…

实在智能携“TARS大模型”入选“2023中国数据智能产业AI大模型先锋企业”

近日&#xff0c;由数据猿与上海大数据联盟联合主办的“2023企业数智化转型升级发展论坛”在上海圆满收官。 论坛颁奖典礼上&#xff0c;《2023中国数据智能产业AI大模型先锋企业》等六大榜单正式揭晓&#xff0c;旨在表彰在AI领域为数智化升级取得卓越成就和突出贡献的企业&am…

解决“使用 CNKI 保存时发生错误。改为尝试用 DOI 保存。”【Bug Killed】

文章目录 简介解决办法跟新本地Zotero中茉莉花插件的非官方维护中文翻译器更新网页插件Zetero Connector中的Transtors 结语参考资料 简介 使用Chrome ➕ Zotero Connector保存中国知网&#xff08;CNKI&#xff09;的参考文献到本地的Zotero时无法正常保存&#xff0c;出现使…

Altium Designer学习笔记8

创建原理图元件&#xff1a; 画出原理图&#xff1a; 根据规则书画出原理图&#xff1a; 根据规则书画出封装图&#xff1a; 参照&#xff1a; 确认下过孔的内径和外径的最小允许值。

Vatee万腾的数字时代探险:vatee科技力量的未来洞悉

在数字化的时代潮流中&#xff0c;Vatee万腾以其强大的科技力量&#xff0c;正在进行一场前所未有的数字时代探险。 Vatee万腾的数字时代探险源于其对未来的洞悉。通过深度研究和前瞻性思考&#xff0c;他们将科技力量与未来趋势相结合&#xff0c;勾勒出数字时代的新蓝图&…

springboot注解@NotNull,@NotBlank,@Valid自动判定空值

一.前言 使用springboot搭建项目时&#xff0c;我们都是采用的Restful风格接口&#xff0c;这里面问题来了&#xff0c;当前端调用接口或者是其他项目调用时&#xff0c;传入参数时我们不能单一靠调用方来控制参数的准确性&#xff0c;自己也要一些参数进行判断,进行非空之类的…

露营管理系统预约小程序效果如何

旅游经济已经复苏&#xff0c;并且市场规模增速加快&#xff0c;近一年来远途/周边游客户增多&#xff0c;不少旅游景区在节假日常常面对客流爆满现象。同时露营作为近几年突然火热的项目&#xff0c;其需求也是日渐上升。 然而在高需求的同时&#xff0c;我们也看到露营经营痛…

【数组栈】实现

目录 栈的概念及其结构 栈的实现 数组栈 链式栈 栈的常见接口实现 主函数Test.c 头文件&函数声明Stack.h 头文件 函数声明 函数实现Stack.c 初始化SLInit 扩容Createcapacity 压栈STPush 出栈STPop 栈顶元素STTop 判断栈是否为空STempty 栈内元素个数STSzi…

Mysql中join on中的like使用

1、使用mysql中的函数CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL &#xff0c;则返回值为 NULL。 SELECT * FROM Table1 INNER JOIN Table2 ON Table1.col LIKE CONCAT(%, Table2.col, %) 2、放弃使用join语句 SELECT * FROM Table1, T…

使用sqlserver备份还原,复制迁移数据库

文章目录 前言一、备份数据库二、还原数据库三、其他 前言 当初学sqlserver复制数据库的时候&#xff0c;老师只教了右键数据库生成sql脚本&#xff0c;没说数据库非常大的时候咋搞啊&#xff0c;分离数据库复制一份后在附加上去太危险了 百度一下备份还原数据库针对小白的资料…

docker安装mysql及主从配置

创建mysql配置文件&#xff1a;my.cnf 主库配置&#xff1a; [client] ## 默认编码格式 default-character-setutf8mb4 [mysqld] ## 设置server-id&#xff0c;同一局域网中需要唯一 server-id101 ## 设置编码格式 character-set-serverutf8mb4 ## 允许最大连接数 max_conne…

Redis key键

Redis 是一种键值&#xff08;key-value&#xff09;型的缓存型数据库&#xff0c;它将数据全部以键值对的形式存储在内存中&#xff0c;并且 key 与 value 一一对应。这里的 key 被形象的称之为密钥&#xff0c;Redis 提供了诸多操作这把“密钥”的命令&#xff0c;从而实现了…

财报解读:电商GMV增长30%后,快手将坚守本地生活?

快手逐渐讲好了其高质量成长的故事。 根据财报&#xff0c;快手三季度业绩超出预期&#xff0c;其中&#xff0c;营收279.5亿元&#xff0c;同比增长20.8%&#xff1b;调整后净利润31.7亿元&#xff0c;同比扭亏为盈。 而联系市场环境来看&#xff0c;三季度广告、电商市场较…

超详细的pytest玩转HTML报告:修改、汉化和优化

前言 Pytest框架可以使用两种测试报告&#xff0c;其中一种就是使用pytest-html插件生成的测试报告&#xff0c;但是报告中有一些信息没有什么用途或者显示的不太好看&#xff0c;还有一些我们想要在报告中展示的信息却没有&#xff0c;最近又有人问我pytest-html生成的报告&a…