当前位置: 首页 > news >正文

xtuoj 0x05-C 项链

题目

思路

主要是实现旋转和翻转操作,注意这是一个环

实现旋转操作,且是环,我们可以创建一个二倍数组,就是把数组复制一遍存到数组后面,然后我们依次取n个,就是从第 i 个起取 n 个为一个序列,然后我们依次判断 a[i+j] 与 b[j] 是否相等就好了,a[i+j] 就是第 i 个开始的这个序列的第 j 个,b[j] 就是b序列的第 j 个

实现翻转操作,题目说是沿对称轴旋转180°,其实就是取逆序序列就好了,具体取法就是 a[i]=a[n-1-i] 就好了,当然我们还是要创建一个二倍数组,这样我们可以判断旋转翻转以后是否匹配

代码

#include<stdio.h>
#define N 1005int n;
int a[N],b[N];
int a2[N*2];
int reva[N],reva2[N*2];int main(){int T;scanf("%d",&T);while(T--){scanf("%d",&n);for(int i=0;i<n;i++) scanf("%d",&a[i]);for(int i=0;i<n;i++) scanf("%d",&b[i]);for(int i=0;i<2*n;i++) a2[i]=a[i%n];for(int i=0;i<n;i++) reva[i]=a[n-1-i];for(int i=0;i<2*n;i++) reva2[i]=reva[i%n];int found=0;for(int i=0;i<n;i++){int match=1;for(int j=0;j<n;j++){if(a2[i+j]!=b[j]){match=0;break;}}if(match){found=1;break;}}if(!found){for(int i=0;i<n;i++){int match=1;for(int j=0;j<n;j++){if(reva2[i+j]!=b[j]){match=0;break;}}if(match){found=1;break;}}}if(found) printf("Yes\n");else printf("No\n");}return 0;
}

http://www.dtcms.com/a/393700.html

相关文章:

  • STM32F429I-DISC1【读取板载运动传感器数据】
  • 【Kafka面试精讲 Day 21】Kafka Connect数据集成
  • 2025数据资产管理平台深度分析:技术特性、与选型逻辑
  • RabbitMQ Java 解决消息丢失、重复和积压问题
  • 深入解析 Spring AI 系列:解析请求参数处理
  • OpenLayers地图交互 -- 章节五:捕捉交互详解
  • 阿瓦隆1566HA-448T矿机深度解析:性能、效率与冷却技术
  • 平替confluence,推荐一款国产开源免费的知识管理工具 - sward
  • 【开源】基于STM32的智能垃圾桶
  • RuoYi-Cloud问题:访问https的网关地址,实际是访问http的文件服务
  • HttpClientFactory vs new HttpClient:.NET Core HTTP 客户端的正确打开方式
  • MySQL数据库(七)—— 基于主主复制与 Keepalived 非抢占模式的高可用方案
  • 如何提高Java并发编程的实战能力?
  • JavaWeb 课堂笔记 —— 17 SpringBootWeb案例 部门管理
  • java设计模式四,原型模式
  • 【NOIP 2024 T2】遗失的赋值
  • TypeScript学习笔记1
  • Android普通应用切到后台后,多长时间会被系统回收
  • 【Elasticsearch面试精讲 Day 21】地理位置搜索与空间查询
  • 【Android】View 的滑动
  • 【深度学习的优化理论】如何理解OT与欧几里得距离均值的区别
  • 【Android】Room数据库的基本使用
  • 项目:仿muduo库的高并发服务器
  • Oracle普通用户报错ORA-31603处理
  • 网络安全期末大论文
  • 23种设计模式之【工厂方法模式】-核心原理与 Java实践
  • cocos 添加背景,帧动画,贴图
  • 亚马逊云科技重磅推出 Amazon S3 Vectors:首款大规模支持原生向量的云存储服务
  • SQLite Expert:一款功能强大的SQLite管理工具
  • Python 2025:供应链安全威胁与防御实战