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

春季提高思维能力测试(B) A.符文大陆

题目:

T753626 符文大陆

题目描述

在符文大陆的中心,存在着一个巨大的符文能量矩阵。为了维持世界的平衡,守护者们需要频繁地对矩阵进行“空间翻转”、“维度转置”以及“能量灌注”。

作为新晋的守护者,你需要在进行这一系列复杂的魔法操作的同时精准地算出指定符文位置的能量值。

给定一个 \(n \times n\) 的矩阵,矩阵的行和列编号均从 \(1\)\(n\)。初始时,第 \(i\) 行第 \(j\) 列的符文能量值 \(a_{i,j}\) 由以下公式决定:

\[a_{i,j} = (A \times i^2 + B \times j^2 + C) \bmod 10007 \]

其中 \(A, B, C\) 为给定的初始魔法常数。你需要处理 \(q\) 次操作,操作分为以下 6 种类型:

  1. R x k:行能量灌注。给当前矩阵第 \(x\) 行的所有符文能量加上 \(k\)
  2. C y k:列能量灌注。给当前矩阵第 \(y\) 列的所有符文能量加上 \(k\)
  3. A k:全局充能。给当前矩阵所有符文能量加上 \(k\)
  4. T:空间转置。将当前矩阵进行转置操作(即第 \(i\) 行变成第 \(i\) 列,第 \(j\) 列变成第 \(j\) 行)。
  5. S u v:维度交换。交换当前矩阵的第 \(u\) 行与第 \(v\) 行。
  6. Q x y:能量查询。询问当前矩阵第 \(x\) 行第 \(y\) 列的符文能量值。

输入格式

第一行包含五个非负整数 \(n, q, A, B, C\)

接下来 \(q\) 行,每行包含一个操作指令。

输出格式

对于每个 Q 操作,输出一行一个整数,表示该符文当前的能量值。

输入输出样例 #1

输入 #1
4 11 1 1 0
Q 2 3
A 10
R 2 5
C 3 7
Q 2 3
S 2 4
Q 2 3
T
Q 2 3
R 2 100
Q 2 3
输出 #1
13
35
42
23
123

说明/提示

对于 30% 的数据:\(1\le n,q\le 5\times 10^2\)

对于 100% 的数据:\(1 \le n, q \le 10^5,0 \le A, B, C, k \le 10^2\)

错误原因:

模的太多,错误地对所有增量及最终答案都取模 10007 了。会把中间计算的超过 10007 值都模了,导致大数据错误。

错误代码:

#include <bits/stdc++.h>
using namespace std;
const int mod = 10007;
int n, q, A, B, C, rp[100005], cp[100005], radd[100005], cadd[100005], aadd;
bool tra;
int main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);cin >> n >> q >> A >> B >> C;for (int i = 1; i <= n; i++) rp[i] = i, cp[i] = i;while (q--) {char op; cin >> op;if (op == 'R') {int x, k; cin >> x >> k;k = (k % mod + mod) % mod;if (!tra) radd[rp[x]] = (radd[rp[x]] + k) % mod;else cadd[cp[x]] = (cadd[cp[x]] + k) % mod;} else if (op == 'C') {int y, k; cin >> y >> k;k = (k % mod + mod) % mod;if (!tra) cadd[cp[y]] = (cadd[cp[y]] + k) % mod;else radd[rp[y]] = (radd[rp[y]] + k) % mod;} else if (op == 'A') {int k; cin >> k;k = (k % mod + mod) % mod;aadd = (aadd + k) % mod;} else if (op == 'T') {tra = !tra;} else if (op == 'S') {int u, v; cin >> u >> v;if (!tra) swap(rp[u], rp[v]);else swap(cp[u], cp[v]);} else if (op == 'Q') {int x, y, r, c; cin >> x >> y;if (!tra) r = rp[x], c = cp[y];else r = rp[y], c = cp[x];long long r2 = 1ll * r * r % mod;long long c2 = 1ll * c * c % mod;long long base = (1ll * A * r2 % mod + 1ll * B * c2 % mod + C) % mod;long long val = (base + radd[r] + cadd[c] + aadd) % mod;cout << (val % mod + mod) % mod << "\n";}}return 0;
}

正确代码:

#include <bits/stdc++.h>
using namespace std;
const int mod = 10007;
int n, q, A, B, C;
int rp[100005], cp[100005];
long long radd[100005], cadd[100005], aadd;
bool tra;
int main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);cin >> n >> q >> A >> B >> C;for (int i = 1; i <= n; i++) rp[i] = i, cp[i] = i;while (q--) {char op;cin >> op;if (op == 'R') {int x, k;cin >> x >> k;if (!tra) radd[rp[x]] += k;else      cadd[cp[x]] += k;} else if (op == 'C') {int y, k;cin >> y >> k;if (!tra) cadd[cp[y]] += k;else      radd[rp[y]] += k;} else if (op == 'A') {int k;cin >> k;aadd += k;} else if (op == 'T') {tra = !tra;} else if (op == 'S') {int u, v;cin >> u >> v;if (!tra) swap(rp[u], rp[v]);else      swap(cp[u], cp[v]);} else if (op == 'Q') {int x, y;cin >> x >> y;int r, c;if (!tra) r = rp[x], c = cp[y];else      r = rp[y], c = cp[x];long long base = (1LL * A * r % mod * r % mod +1LL * B * c % mod * c % mod + C) % mod;long long ans = base + radd[r] + cadd[c] + aadd;cout << ans << "\n";}}return 0;
}
http://www.jsqmd.com/news/779009/

相关文章:

  • 手把手教你用Keil C51插件搞定赛元SC92F73A3单片机IO口配置(附避坑指南)
  • 基础SQL:约束
  • 2026年美容仪器排名前十品牌,真实用户评价深度解析 - 品牌企业推荐师(官方)
  • 从SITS2026看AISMM评估拐点:为什么头部企业已在Q2完成差距分析与基线对标?
  • 告别数据丢失!ABAP ALV修改事件(Data Changed)的两种正确注册与刷新姿势
  • 开源大模型机械爪操作能力评测框架解析与实践
  • Arm Cortex-X2处理器编程陷阱与解决方案
  • 零代码RAG构建与向量数据库操作:从文档到知识的自动化之路
  • 风电系统光纤通信技术应用与优化指南
  • 2026壁挂炉十大品牌硬核横评:抛开营销看数据,选对品牌能省一半气费?
  • 81页精品PPT | 企业数字化底座与数字化转型方案
  • MySQL慢查询及解决方案
  • Winform 两个页面中间的值互相传递
  • 一键下载DLL 文件,链接在这里
  • 奇点大会不是展会,是AI产业分水岭:基于2025全球17家头部机构内部评估报告的5维竞争力对标分析
  • 硅谷AI金融平台AlphaAI进驻香港,亚太运营中心将于5月20日正式开幕
  • 5分钟搞定华硕笔记本性能控制:G-Helper终极轻量化解决方案
  • 室内儿童淘气堡中海洋球闯关与男生女生向前冲游戏的机制差异、体验比较及教育价值研究
  • 自行车加强件拓扑优化-CAE操作过程
  • ClipSync - 基于webRTC和TURN协议的局域网/远程同步工具
  • 技术创业者如何用Bootstrapping模式实现零成本启动与快速验证
  • stl每次遍历找最大值
  • ScaleLLM:基于向量化与编译技术的大模型推理引擎部署与优化指南
  • opencode会话同步skill
  • 【图像加密解密】3D-IWT和2D-ICSM超混沌的密文彩色图像加密解密【含Matlab源码 15420期】
  • Claude Skills 完全使用指南:从入门到自定义开发
  • AI代码生成:告别重复开发,效率翻倍
  • 面试被问 MySQL 慢 SQL 怎么排查?看完这篇直接给面试官讲明白
  • 项目介绍 基于Python的汉服商城管理系统设计与实现(含模型描述及部分示例代码)专栏近期有大量优惠 还请多多点一下关注 加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢
  • stm32f103编程手册英文版中,常用词汇生成英文短文学习