Educational Codeforces Round 163 (Rated for Div. 2)题解

A. Special Characters(Problem - A - Codeforces)

题目大意:给定一个正整数n,需要输出一个字符串s,s中需要有n个满足要求的字符,对于字符的要求:对于该字符,它的左右有且仅有一个字符与它相同。如果这样的字符串不存在的话输出NO。

思路:这题如果我们有一串相同的字符,显然只有最左边和最右边两个字符是合法字符,不管这串字符有多长,但它只有大于等于2才是有效的,所以当n为偶数的时候,我们输出n/2组两个字符相同的就可,否则就不成立。输出的时候记得每输出两个后换一种字符。

#include<bits/stdc++.h>
using namespace std;
int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);if(n&1) printf("NO\n");else{printf("YES\n");for(int i=0;i<n/2;i++){char c='A'+i%26;printf("%c%c",c,c);}printf("\n");}}
}

B. Array Fix(Problem - B - Codeforces)

题目大意:给定一个n长的数组a[],这些数都是一位数或者两位数,对数组中的每个两位数,我们可以将它拆成两个数,最后要保证数组是一个非降数组。

思路:我们从前往后看,拆的条件显然是后一个数小于前一个数,但是这里有一个bug,比如对于a,b,c三个数,我们在访问a的时候,发现b>=a,那么a是不用拆的,但是如果b>c,那么b要拆,拆了前面a和b的关系就不满足了,所以我们不能从前往后判断,那么我们换一下从后往前判断呢?这样显然就可以了,因为前面的数拆了也不影响后面的数大于等于它的条件。还有一个容易忽略的点在于这个数拆了之后,自身的两个数是不满足条件的,一定要记得判断。

#include<bits/stdc++.h>
using namespace std;
int a[100];
int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&a[i]);int last=a[n];int flag=1;for(int i=n-1;i>=1;i--){if(last>=a[i]) last=a[i];else{//a[i]可能只有一位//a[i]自己拆完不满足if(a[i]%10>last || a[i]/10==0 || a[i]/10>a[i]%10) {flag=0;break;}else last=a[i]/10;}}if(flag) printf("YES\n");else printf("NO\n");}
}

C. Arrow Path(Problem - C - Codeforces)

题目大意:现在有一个2行n列的矩阵,矩阵的每一格都有一个向左或者向右的方向,机器人最开始在(1,1)位置,它每次可以向上下左右四个方向移动,移动之后又会按照当前格中的方向进行移动,问最后它能否到达(2,n)位置。

思路:对于这种操作,那么我们就需要看哪些操作是有效的,哪些操作是无效的。显然,如果它向右移,然后右边的格子的字符是向左,那不管它怎么向右移动都是无效的。那么对于向下操作呢,显然也需要它下面的那一个是向右的,否则,它就会被送到左下格,往前就是无效操作,往上要么被往左送,要么又回到刚刚下来的位置。对于向上操作,也是一样,上面那一格一定要是向右的,我原本觉得向上操作是没必要的,但实际上如果两行交替着出现向左的格子,那么可以一会儿上一会儿下的避开。往左操作就真的是无效的了。

#include<bits/stdc++.h>
using namespace std;
char s[3][200010];
int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);scanf("%s%s",s[1]+1,s[2]+1);int x=1,y=1;while(!(x==2&&y==n)){if((x==2&&y+1==n)||(x==1&&y==n))break;if(s[x][y+1]=='>')y+=2;else//这里是向右不能移动,只能向上或者向下移动的情况,如果还不行,那么确实移动不到{x+=1;if(x==3) x=1;if(s[x][y]=='>') y+=1; else break;}}if(x==2&&y==n) printf("YES\n");else printf("NO\n");}
}

D. Tandem Repeats?(Problem - D - Codeforces)

题目大意:给定一个字符串,我们需要找到最长的偶数长子串,使得子串的前半段完全等于后半段。问这样的子串最长有多长。

思路:这题说前半段等于后半段,我还以为是kmp,但比赛那会儿时间太紧了,没写出来,比赛结束后才发现我高看它了,根本就用不着kmp,我们只要枚举子串一半的长度,对于每个长度从s的第一个字符开始找,s[i]=s[i+k]就将计数的变量+1,否则就将计数的变量置为0,一旦计数的变量等于k,那么就说明对于这个长度我们找到了一个合法的子串,这样一直往后枚举,最后就能得到最长的长度。

#include<bits/stdc++.h>
using namespace std;
char s[200010];
int main()
{int t;scanf("%d",&t);while(t--){scanf("%s",s+1);int cnt=0;int n=strlen(s+1);for(int k=1;k*2<=n;k++){int c=0;for(int i=1;i+k<=n;i++){if(s[i]==s[i+k]||s[i]=='?'||s[i+k]=='?') c++;else c=0;if(c==k) cnt=k;}}printf("%d\n",cnt*2);}
}

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

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

相关文章

React Router 参数使用详解

React Router 参数使用详解 React Router 是 React 中用于处理路由的常用库&#xff0c;它提供了丰富的功能来管理应用程序的导航和路由状态。在 React Router 中&#xff0c;我们经常需要使用不同类型的参数来处理路由信息&#xff0c;包括 params 参数、search 参数和 state…

数据血缘实现原理

市面上其实针对数据血缘的产品有很多,像阿里DataWorks的数据地图、字节的DataLeap以及非常火的开源产品Apache Atlas都是非常好用工具产品。但是本质上是想通过这篇文章,让小伙伴们在使用这些产品的时候多去思考这些产品背后的实现原理。 1、前言 大数据时代,数据的来源极…

Python Web开发记录 Day9:Django part3 用户管理

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、数据库准备2、用户列表3、新建用户4、编辑用…

科研学习|论文解读——美国政治经济中的权力:网络分析(JASIST, 2019)

论文原题目 Power in the U.S. political economy: A network analysis 摘要 美国政治经济的许多特征产生于大型政治和经济机构之间的互动&#xff0c;然而我们对它们的互动性质和这些机构之间的权力分配知之甚少。在本文中&#xff0c;对总部设在美国的组织的网络进行了详细的…

突破编程_C++_面试(STL 编程 map 与 multimap)

面试题 1 &#xff1a;解释一下 std::map 和 std::multimap 之间的主要区别是什么&#xff1f; std::map 和 std::multimap 都是 C 标准模板库&#xff08;STL&#xff09;中的关联容器&#xff0c;它们提供了键值对的存储和快速查找功能。然而&#xff0c;它们之间存在着一些…

学习shell脚本

文章目录 什么是shell脚本为什么要学习shell脚本第一个脚本编写与执行 简单的shell脚本练习简单案例脚本的执行方式差异(source、sh script、./script) 如何使用shell脚本的判断式利用test命令的测试功能利用判断符号[ ]shell脚本的默认变量($0、$1...) shell脚本的条件判断式利…

C语言每日一题—判断是否为魔方矩阵

魔方矩阵 在魔方阵中&#xff0c;所有的行、列和对角线都拥有相同的和。例如&#xff1a;17 24 1 8 15 23 5 7 14 16 4 9 24 6 13 20 22 和 3 5 710 12 19 21 3 8 1 611 18 25 2 9 写一个程序读入一个二维整型数组并…

【Unity知识点详解】Button点击事件拓展,单击、双击、长按实现

Button拓展 今天来聊一下关于Button的事件拓展&#xff0c;这里只是拿Button来举例&#xff0c;Unity中其他的UI组件如Toggle、Slider等都也适用。 我们知道在Button中我们可以通过onClick的方式来添加点击事件&#xff0c;但在游戏开发过程中我们往往对Button有着更多的功能需…

2.3 物理层设备

2.3 物理层设备 &#xff08;一&#xff09;中继器 产生原因 由于存在损耗&#xff0c;在线路上传输的信号功率会逐渐衰减&#xff0c;衰减到一定程度时将造成信号失真&#xff0c;因此会导致接收错误。 中继器的功能 对信号进行再生和还原&#xff0c;对衰减的信号进行放大…

VMware Worksation 问题

几个晚上在虚拟机装了好多东西&#xff0c;配置mysql&#xff0c;配置docker、Git工具等等&#xff0c;可能废寝忘食导致太困强制关了虚拟机&#xff0c;结果第二天晚上回来发现打不开&#xff0c;心态直接崩了。 问题&#xff1a; 疯狂百度告知要删除后缀为.lck的文件夹及文件…

网络爬虫丨基于scrapy+mysql爬取博客信息

文章目录 写在前面实验描述实验框架实验需求 实验内容1.安装依赖库2.创建Scrapy项目3.配置系统设置4.配置管道文件5.连接数据库6.分析要爬取的内容7.编写爬虫文件 运行结果写在后面 写在前面 本期内容&#xff1a;基于scrapymysql爬取博客信息并保存到数据库中 实验需求 ana…

如何快速搭建物联网工业云平台

随着物联网技术的快速发展&#xff0c;物联网工业云平台已经成为推动工业领域数字化转型的重要引擎。合沃作为专业的物联网云服务提供商&#xff0c;致力于为企业提供高效、可靠的物联网工业云平台解决方案。本文将深入探讨物联网工业云平台的功能、解决行业痛点的能力以及如何…

microk8s使用本地私服registry的镜像

开发环境为了能部署服务到microk8s&#xff0c;我们开启了一个本地私库&#xff0c;地址为&#xff1a;http://localhost:5000&#xff0c;那么如何在microk8s中能拉取本地私库中的镜像呢? 直接部署的话&#xff0c;microk8s会用https协议去拉取镜像&#xff0c;所以必须要配置…

【Docker】Solr容器化部署及配置参数详情

Solr标准软件基于Bitnami solr 构建。当前版本为9.5.0 你可以通过轻云UC部署工具直接安装部署&#xff0c;也可以手动按如下文档操作&#xff0c;该项目已经全面开源&#xff0c;可以从如下环境获取 配置文件地址: https://gitee.com/qingplus/qingcloud-platform qinghub自动…

每日OJ题_简单多问题dp⑦_力扣123. 买卖股票的最佳时机 III

目录 力扣123. 买卖股票的最佳时机 III 状态机分析 解析代码 力扣123. 买卖股票的最佳时机 III 123. 买卖股票的最佳时机 III 难度 困难 给定一个数组&#xff0c;它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以…

D 咖智能饮品机入驻万达,引领时尚饮品新潮流!

近日&#xff0c;D 咖智能饮品机正式入驻万达广场&#xff0c;为广大消费者带来全新的时尚饮品体验。作为国内领先的智能饮品设备品牌&#xff0c;D 咖智能饮品机以其多样化的口味选择、便捷的操作方式和个性化的定制服务&#xff0c;受到了众多消费者的喜爱。 D 咖智能饮品机提…

基于Verilog的简易CPU设计

前言 本篇文章将简单讲解CPU之间各部分的功能及接线&#xff0c;并提供Verilog模拟CPU的各个组成部分。该CPU可以完成一些操作&#xff0c;如&#xff1a;加减法&#xff0c;与或&#xff0c;指令跳转等&#xff0c;最后提供testbench用于测试该CPU的工作情况是否符合预期。 C…

浏览器如何进行静态资源缓存?—— 强缓存 协商缓存

在平时使用浏览器排查问题的过程中&#xff0c;我们有时会看到浏览器网络请求中出现304状态码&#xff0c;那么是什么情况下出现304呢&#xff1f;下面是关于这一现象的解释&#xff1a; 浏览器如何进行静态资源缓存&#xff1f;—— 强缓存 & 协商缓存 状态码 304浏览器如…

Codeforces Round 929 (Div. 3) C. Turtle Fingers: Count the Values of k(枚举,数学)

time limit per test 5 seconds memory limit per test 256 megabytes inputstandard input outputstandard output 给你三个正整数 a 、 b 和 l ( a , b , l > 0 ) a 、 b 和 l ( a,b,l>0 ) a、b和l(a,b,l>0)。 可以证明&#xff0c;总有一种方法可以选择非负(即 …

Rust写一个wasm入门并在rspack和vite项目中使用(一)

rust打包wasm文档 文档地址 安装cargo-generate cargo install cargo-generate 安装过程中有问题的话手动安装cargo-generate下载地址 根据自己的系统下载压缩包&#xff0c;然后解压到用户/.cargo/bind目录下&#xff0c;将解压后的文件放到该目录下即可。 创建wasm项目 …