Codeforces Round 906 (Div. 2--ABC)

A.Doremy's Paint 3

题目

一个元素全为整数的数组,如果满足相邻两个元素和相同,我们就认定此数组is good。给定一个长度为n的数组a,可以任意改变元素顺序,判定数组a是否is good。

输入

首行t测试数据数量,1\leq t \leq 100

每组数据第一行n,数组长度,2 \leq n \leq 100

第二行数组a的n个数字,1 \leq a_{i} \leq 10^{5}

输出

"YES"或“NO”,判定a是否is good。

解析

 相邻元素和相同,等价于数组中奇数位置元素相同,偶数位置元素相同。故数组中最多出现两种元素,即奇数位和偶数位数字不同的情况。同时奇数位数字出现个数最多比偶数位数字出现次数多一,否则组不成数组。故,只需遍历数组统计奇偶位数字出现次数即可,时间复杂度n\cdot t = 10^{4}

代码


T = int(input().strip())for t in range(T):n = int(input().strip())a = list(map(int, input().strip().split()))s = set(a)if len(s) > 2:print("NO")elif len(s) == 2:odd = a.count(a[0])even = n - oddif abs(odd - even) <= 1:print("YES")else:print("NO")else:#奇偶位数字相同print("YES")

B.Qingshan Loves Strings

题目

 一个字符串s,一个字符串t,由0和1组成。定义一个字符串is good需要满足相邻字符不同,如1或101或0101字符串is good。判断通过将t插入到s的任意位置,是否可以让s is good。

输入

首行t测试数据数量,1\leq t \leq 200

每组数据第一行s长度n和t长度m,1 \leq n, m \leq 50

第二行s

第三行t

输出

YES or NO

解析

 如果s不满足is good,说明s中有连续的1或0,能够将连续1分开的只有以0开头和结尾的t,能够将连续0分开的只有以1开头和结尾的t,故答案为YES的只有上述三种情况。时间复杂度粗略估计n \cdot t = 10^{4},绰绰有余。

代码


T = int(input().strip())def check(s):l = 1for c in s:if c == l:return Falseelse:l = creturn Truefor k in range(T):n, m = map(int, input().strip().split())s = input().strip()t = input().strip()if check(s): # 遗漏点print("YES")else:if check(t):if t[0] == t[-1] == "0" and s.count("00") == 0:print("YES")elif t[0] == t[-1] == "1" and s.count("11") == 0:print("YES")else:print("NO")else:print("NO")

C.Qingshan Loves Strings 2

题目

字符串s由0和1组成,定义一个字符串is good需要满足:第一个与倒数第一个字符不同,第二个与倒数第二个不同,依次类推。 可以执行的操作只有一个,向s任意位置插入“01”字符串,判断字符串s是否能在300次以内的操作满足is good条件。

输入

首行t测试数据数量,1\leq t \leq 100

每个测试样例首行为字符串s的长度n,1 \leq n \leq 100

第二行字符串s

输出

对于每个样例,如果s不可能成为good,输出“-1”

否则第一行输出操作个数p

第二行输入插入“01”字符的位置,0表示插入s开头,其他数值i表示插入到第i个字符之后。

解析

依次对比字符串首位字符,如果不同,则去掉首位字符,查看得到的新字符串的首位。如果相同,两种情况,同为1,则要在开头添加“01”;同为“0”,则要在末尾添加“01”。依次判断保存添加结果即可,需注意插入操作对插入位置的影响,其他为模拟过程。

代码

from collections import dequedef solve():n = int(input().strip())q = deque(input().strip())cnt0 = cnt1 = 0for c in q:if c == "1":cnt1 += 1else:cnt0 += 1if cnt0 != cnt1:print("-1")returnres = list()d = 0while len(q) > 1:if q[0] == q[-1]:if q[0] == "0":q.append("0")q.append("1")res.append(n-d)else:q.appendleft("1")q.appendleft("0")res.append(d)n += 2while len(q) > 1 and q[0] != q[-1]:q.pop()q.popleft()d += 1print(len(res))for r in res:print(r, end=" ")print()K = int(input().strip())for k in range(K):solve()

 尾

这次B提交错误两次,C未做完没提交,跟上次差不多。将原题目贴出来,B提交错误的两次是没理解对题目意思,英文的阅读理解还是有一定问题的。

比如

 可以插入多次这种字眼会忽略掉,还有

开始以为1,101,0101是一个完整地数字,后来才发现这是三个例子1和101和0101,愁了半天。还是要慢慢读题目,然后看题目给的例子,最后有些题目末尾有作者写的note,一定要好好看,确认自己理解无误。不然提交错了,白白扣分。不用着急做后边的题,反正也不会,争取不提交错误就行。

 CF407——>CF692

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

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

相关文章

新一代构建工具Vite-xyphf

一、什么vite? vite:是一款思维比较前卫而且先进的构建工具,他解决了一些webpack解决不了的问题——在开发环境下可以实现按需编译&#xff0c;加快了开发速度。而在生产环境下&#xff0c;它使用Rollup进行打包&#xff0c;提供更好的tree-shaking、代码压缩和性能优化&…

【GEE】基于GEE-Landsat8数据集地表温度反演(LST热度计算)

老样子&#xff0c;最近在做生态方面的项目&#xff0c;然后需要分析城市的热岛效应&#xff0c;想了想还是用GEE计算比较简单&#xff0c;直接下载影像太麻烦了。所以在网上看看了资料&#xff0c;踩了踩坑终于是将代码写出来了。秉承着取之于民、用之于民的想法&#xff0c;今…

windows10编译高版本openssl

参考文章 参考文章中的windows编译为低版本&#xff0c;在高版本的openssl编译中已经没有&#xff1a;“ms\do_ms.bat”这个脚本了&#xff0c;现记录下编译过程 1、准备工作 安装ActivePerl&#xff0c;安装后会自动写入环境变量&#xff0c;参照参考文章测试安装成功与否&a…

【监控指标】监控系统-prometheus、grafana。容器化部署。go语言 gin框架、gRPC框架的集成

文章目录 一、监控有哪些指标二、prometheus、grafana架构Prometheus 组件Grafana 组件架构优点 三、安装prometheus和node-exporter1. docker pull镜像2. 启动node-exporter3. 启动prometheus 四、promql基本语法五、grafana的安装和使用1. 新建空文件夹grafana-storage&#…

mediasoup webrtc音视频会议搭建

环境ubuntu22.10 nvm --version 0.33.11 node -v v16.20.2 npm -v 8.19.4 node-gyp -v v10.0.1 python3 --version Python 3.10.7 python with pip: sudo apt install python3-pip gcc&g version 12.2.0 (Ubuntu 12.2.0-3ubuntu1) Make 4.2.1 npm install mediasoup3 sudo …

听GPT 讲Rust源代码--library/std(16)

题图来自 EVALUATION OF RUST USAGE IN SPACE APPLICATIONS BY DEVELOPING BSP AND RTOS TARGETING SAMV71[1] File: rust/library/std/src/sync/mpmc/select.rs 在Rust标准库中&#xff0c;rust/library/std/src/sync/mpmc/select.rs文件的作用是实现一个多生产者多消费者的选…

C++笔记之动态数组的申请和手动实现一个简单的vector

C笔记之动态数组的申请和手动实现一个简单的vector code review! 文章目录 C笔记之动态数组的申请和手动实现一个简单的vector1.C语言中动态数组的申请与使用1.动态数组的申请使用new和delete使用std::vector 1.std::vector的底层实现2.手动实现一个简单的vector:使用一个指向…

项目上线前发现严重Bug怎么办?

今天分享一个面试问题&#xff0c;现在有一个面试场景&#xff1a; 项目计划明天发布&#xff0c;但是在今天你作为测试人员发现了一个严重的bug&#xff0c;市场相关人员又在催发布的事情&#xff0c;这个时候你应该怎么办&#xff1f; 这是测试工程师不管是在面试&#xff0…

力扣 138. 随机链表的复制

题目描述&#xff1a; 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的…

前端框架Vue学习 ——(三)Vue生命周期

生命周期&#xff1a;指一个对象从创建到销毁的整个过程。 生命周期的八个阶段&#xff1a;每触发一个生命周期事件&#xff0c;会自动执行一个生命周期方法&#xff08;钩子&#xff09; mounted&#xff1a;挂载完成&#xff0c;Vue 初始化成功&#xff0c;HTML 页面渲染成功…

京东商品详情API接口(PC端和APP端),京东详情页,商品属性接口,商品信息查询

京东开放平台提供了API接口来访问京东商品详情。通过这个接口&#xff0c;您可以获取到商品的详细信息&#xff0c;如商品名称、价格、库存量、描述等。 以下是使用京东商品详情API接口的一般步骤&#xff1a; 注册并获取API权限&#xff1a;您需要在京东开放平台上注册并获取…

ClickHouse 学习之从高级到监控以及备份(二)

第 一 部分 高级篇 第 1 章 Explain 查看执行计划 在 clickhouse 20.6 版本之前要查看 SQL 语句的执行计划需要设置日志级别为 trace 才能可以看到&#xff0c;并且只能真正执行 sql&#xff0c;在执行日志里面查看。在 20.6 版本引入了原生的执行计划的语法。在 20.6.3 版本成…