AT_arc153_b [ARC153B] Grid Rotations 题解

news/2025/3/18 12:23:05/文章来源:https://www.cnblogs.com/123asdf123/p/18778544

很久以前打第一场 ARC 时的 B 题,现在差点都还没做出来……
不会写平衡树,因此考虑其它做法。
观察样例二,发现答案好似就是把串往下和往右滚动了几下。
再想一下,发现每两次旋转都可以视为滚动,考虑两次两次计算贡献,如果是奇数次最后一次单独处理。
假设每一个数代表一小块,那么滚动好像是这样的(由于内部旋转了也要旋转回来,就不画了)

但是分析样例发现假如直接按照它下标来划分块会出问题,会被切断。

发现分段应该推出第二根分割线在第一根之前的位置,再划分:

显然,滚动可以先不看字符,最后直接叠加,然后就做完了。
虽然说着简单,实际上写着很麻烦,写了 2 个小时!(考场还是做不出来……)

代码下标有时候是从 0 开始的,因此很屎
#include<bits/stdc++.h>
using namespace std;
namespace estidi{string s[500003];int main(){int h,w,q,x,y,xx,yy;long long rr=0,dr=0;scanf("%d%d",&h,&w);for(int i=0;i<h;i++)cin>>s[i];scanf("%d",&q);for(int i=2;i<=q;i+=2){scanf("%d%d%d%d",&x,&y,&xx,&yy);x--;y--;xx--;yy--;if(xx<=x)xx=x-xx;elsexx=h-xx+x;if(yy<=y)yy=y-yy;elseyy=w-yy+y;
//			cerr<<xx<<" "<<yy<<endl;
//			cerr<<x<<" "<<y<<endl;dr+=h-xx;rr+=w-yy;
//			cerr<<dr<<" "<<rr<<endl;}dr=(dr%h+h)%h;rr=(rr%w+w)%w;if(q%2==1){scanf("%d%d",&x,&y);x--;y--;for(int i=0;i<h;i++){for(int j=0;j<w;j++){int nx,ny;if(i<=x)nx=x-i;elsenx=h-i+x;if(j<=y)ny=y-j;elseny=w-j+y;
//					cerr<<i<<" "<<j<<" "<<nx<<" "<<ny<<" "<<dr<<" "<<rr<<" "<<s[nx][ny]<<endl;printf("%c",s[(nx-dr+h)%h][(ny-rr+w)%w]);}printf("\n");}}else{for(int i=0;i<h;i++){for(int j=0;j<w;j++)printf("%c",s[(i-dr+h)%h][(j-rr+w)%w]);printf("\n");}}return 0;}
}
int main(){estidi::main();return 0;
}

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

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

相关文章

02. 数据在flash的存储

然后我们要理解说文件是如何存储在Flash上的话,首先我们要理解在Flash中是如何存储0,1的 总结来说,从上到下是这样的结构:Flash就是通过双珊极场效应管的方法存储单位的0,1; 而双珊极场效应管是由场效应管设置而来; 如果要理解场效应管,首先我们要理解半导体导电原理。我们…

3.三种简单的力

1.重力 万有引力定律: $F = G \frac{m_1 m_2}{r^2}$ 实际在模拟时使用的方程: $F = mg$(m是物体质量,g为指向向下的常数矢量) 2.摩擦力 2.1静摩擦力 当两个物体相对静止时,阻止它们开始运动的摩擦力称为静摩擦力。 $f_s = \mu_s N$ $ \mu_s$:静摩擦系数 $N$:法向力的大小 2…

01. 数据在磁场中的存储

数据在磁盘上的存储抽象数据存储在磁盘上,物理层面上是在每一个存储单元中,有类似2维的一个一个空间,每一个空间存储1bit或者1byte的数据. 当存储数据的时候都需要知道每一段数据的头地址由此进行读写 这样并不方便管理,所以将整个存储空间划分为更大的单位空间,以block的…

大数据分析是什么?

谢邀,这篇就用大白话聊聊大数据分析到底是什么,不拽专业术语,不卖关子,就用最平常普通的例子去给大家拆解清楚。 大数据分析听着挺高大上,其实离日常生活可近了,比如你刷短视频看到的推荐视频、购物软件猜你喜欢的商品,背后都是大数据分析的作用! 一、到底什么是大数据…

触觉智能RK3506核心板,工业应用方案分享(一)

在工业4.0与智能制造深度融合的今天,设备实时性、稳定性和成本效益成为企业核心竞争力的关键。而触觉智能RK3506核心板,基于RK3506B/RK3506J,仅59元起售,作为全新的入门工业级芯片平台,其工业宽温性能、发热量小,IO接口丰富, 即时性高, 低延迟, 反应速度快等特点,重新定…

day:24 python模块(5)——xlrd模块

一.xlrd 介绍 (1)xlrd是可用于读取excel表格数据(不支持写操作,写操作需要xlwt模块实现) (2)支持xlsx 和xls 格式的格式的表格(不支持csv文件,csv文件可用python自带的csv模块操作) (3)模块安装方式:pip3 install xlrd==1.2.0 (4)模块导入方式:import xlrd 二、…

20242825 2024-2025-2 《网络攻防实践》第三周作业

@目录一. 实验内容1.1 实验内容概述1.2 实验相关知识概述二. 实验过程2.1 动手实践tcpdump2.1.1 实验要求2.1.2 实验过程展示2.1.3 所使用网址链接2.2 动手实践Wireshark2.2.1 实验要求2.2.2 实验过程展示1. 你所登录的BBS服务器的IP地址与端口各是什么?2. TELNET协议是如何…

安装 SQL Server 后在开始菜单中找不到 SQL Server XXXX 配置管理器

找不到,没有的话,就没办法了。。。 可以 Win+R 打开运行窗口,输入右侧命令,打开对应版本的配置管理器: SQL Server 2022:SQLServerManager16.mscSQL Server 2019:SQLServerManager15.mscSQL Server 2017:SQLServerManager14.mscSQL Server 2016:SQLServerManager13.ms…

MinIO Linux 数据迁移

目录安装下载安装Minio客户端备份数据数据还原数据迁移设置别名迁移 从A服务器,迁移致B服务器,前提,需要两边的 Bucket 相同,如果B服务器没有A服务器里的 Bucket 需要先创建 安装 MinIO Linux 安装使用 & SpringBoot整合MinIO 下载 查看系统架构 Linux uname -m # 输出…

day:24 python模块(4)——json模块

一、json模块 将python转换成字符类型,将字符类型转换成python类型 json模块可以实现json数据的序列化和反序列化 (1)序列化:将可存放在内存中的python 对象转换成可物理存储和传递的形式 实现方法:load() loads() (2)反序列化:将可物理存储和传递的json数据形式转换为在…

OpenWrt Mi R4A千兆编译问题

原帖地址:https://www.right.com.cn/forum/thread-4052254-1-1.html 众多周知,小米R4A千兆版与小米R3G V2在硬件上是一样的,但使用coolsnowwolf编译出来的R3G V2或者R4A固件如果用Breed刷进是无法引导进入系统的; 如果要编译出可以用breed能引导的固件需要修改源码,方法很简…

Cloud Ace 宣布成为 Langfuse 亚太地区首个代理商,提供 LLM 全链路解决方案

Langfuse 作为领先的 LLM 工程平台,助力高效开发和管理生成式 AI 应用。Cloud Ace 提供 Langfuse 企业版许可证,支持大规模开发,强化安全管控,并提供本地化技术支持。Cloud Ace 宣布正式代理 Langfuse 产品,是 Langfuse 在亚太地区唯一的官方授权经销商,全面负责其商用许…