Aoao Round 2 比赛总结

news/2025/11/12 15:51:29/文章来源:https://www.cnblogs.com/-jz8-/p/-/251112

分数: \(100 + 25 + 20 + 0 = 145\)

好一个神秘 seq 赛。

T1

不难发现,一个符合要求的序列需要是连续的,且其中比 \(b\) 大的数和比 \(b\) 小的数数量相等。

因此,我们可以以 \(b\) 为起点,分别向两侧扫描,把比 \(b\) 小的数记作 \(-1\),比 \(b\) 大的数记作 \(1\),并分别计算其前缀和。当左侧的某个前缀和和右侧的某个前缀和成相反数时,此时左右比 \(b\) 大和比 \(b\) 小的数的数量就会恰好相等,那么就找到了一个符合要求的序列。

在代码实现中,为了方便,当在 \(b\) 右侧进行扫描时,我们可以把比 \(b\) 大的记作 \(-1\),比它小的记作 \(1\)(与上面的描述相反),然后把左右两侧前缀和分别放入两个桶中。然后左右两个桶相同位置的数的乘积之和即为答案。

别忘了开 long long,不然就会挂掉 55 分。

跳过代码

#include <bits/stdc++.h>
typedef long long ll;
const int N = 2e5+10;
int a[N], n, posB, b;
ll val[N], lBuc[2 * N + 10], rBuc[2 * N + 10];
ll ans = 0;int main() {freopen("empty.in", "r", stdin);freopen("empty.out", "w", stdout);std::ios::sync_with_stdio(false); std::cin.tie(0);std::cin >> n >> b;for (int i = 1; i <= n; i++) {std::cin >> a[i];if (a[i] == b) posB = i;}for (int i = posB - 1; i >= 1; i--) {if (a[i] < b) {val[i] = val[i+1] - 1;} else val[i] = val[i+1] + 1;}for (int i = posB + 1; i <= n; i++) {if (a[i] < b) val[i]  = val[i-1] + 1;else val[i] = val[i-1]-1;}const int ADD = 2e5+10;for (int i = 1; i <= posB; i++) {lBuc[val[i] + ADD]++;}for (int i = posB; i <= n; i++) {rBuc[val[i] + ADD]++;}for (int i = 0; i <= 2 * N; i++) {ans += lBuc[i] * rBuc[i];}std::cout << ans << '\n';return 0;
}

T2

当我看到题解时,虎躯一震——这道题竟然是图论?!

是的,这是一道典型的图论建模题目。我们可以把每个整数当成图上的一个节点,然后定义:相邻的两个整数的二进制只有一位不同 (有点像格雷码)。

可以注意到 \(\max(\operatorname{nailong}(x, y)) + \min(\operatorname{nailong}(\sim x, y)) = m\)。 考虑 BFS,对序列中的每个数取反,并以其为原点开始。每次搜相邻的整数,如果这个数还没有被搜索过,就记录其步数,并将其加入队列。然后,答案就是 \(m\) 与序列中每个数步数的最小值的差。

#include <bits/stdc++.h>
typedef long long ll;
const int N = 1.1e6+10;
int a[N], n, m, step[N], vis[N];int main() {freopen("purple.in", "r", stdin);freopen("purple.out", "w", stdout);std::ios::sync_with_stdio(false); std::cin.tie(0);std::cin >> n >> m;for (int i = 1; i <= n; i++) {std::cin >> a[i];}std::queue<int> q;for (int i = 1; i <= n; i++) {q.push(((1 << m) - 1) ^ a[i]);vis[(((1 << m) - 1) ^ a[i])] = true;}while (!q.empty()) {int u = q.front();q.pop();for (int i = 0; i < m; i++) {int v = u ^ (1 << i);if (!vis[v]) {vis[v] = true;q.push(v);step[v] = step[u] + 1;}}}for (int i = 1; i <= n; i++) {std::cout << m - step[a[i]] << ' ';}return 0;
}

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

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

相关文章

基于遗传算法的PID控制器参数整定方法详解

基于遗传算法的PID控制器参数整定方法详解一、算法原理与核心流程 1. 遗传算法优化框架2. 关键参数编码染色体结构:采用实数编码直接表示Kp、Ki、Kd参数取值范围: Kp ∈ [0.1, 100], Ki ∈ [0, 50], Kd ∈ [0, 20] …

QT项目复盘:如何在有限资源下把桌面端做成‘高端应用’?

QT项目复盘:如何在有限资源下把桌面端做成‘高端应用’?项目背景:资源困境与“高端”诉求的矛盾 兰亭妙微曾接手某工业数据分析桌面应用开发,核心诉求是“高端化”——既要满足工程师对数据处理的高性能需求,又要…

11.12 联考总结

11.10 联考总结 前三题都很简单,但我二三题都调了较长的时间,很不好。 留给T4的时间不是很多。发现可以分解质因数,转化为网格图上不选相邻格的计数。理论复杂度是 \(O(\sqrt{N}\log_2N\log_3N2^{\log_3N})\) 似乎只…

揭开时序数据库的秘密:为何它是数据存储的未来?

在万物互联的时代,数据正以指数级速度增长。从智能工厂的传感器到金融市场的实时交易,从能源网络的监控到车联网的轨迹追踪,这些场景产生的数据都有一个共同特征——时间戳驱动。传统关系型数据库在处理这类高频、海…

Java中将String字符串转换为算术表达式并计算

在Java中,将字符串表示的算术表达式进行计算,可以借助现有的库,如Apache Commons JEXL或使用Java的内置脚本引擎JSR 223进行。但是,如果要自己解析和计算算术表达式,就需要零起步实现一个表达式解析器。这涉及到对…

按钮固定在底部

按钮固定在底部1 wxml<view class="fixed-bottom-btn"><view class="button" bindtap="goYuding">马上预定</view> </view> 2 wxss/* 固定在底部的按钮容器 *…

locust基础

它采用纯 Python 实现,是一个分布式用户负载测试的工具。 使用基于 Requests 库的客户端发起请求,使编写脚本大大简化; 在模拟并发方面摒弃进程和线程,完全基于时间驱动,采用协程(gevent)提供的非阻塞 IO 和 cor…

基于HSMS通信标准的SECS通讯程序

HSMS(High-Speed SECS Message Services)通信标准的SECS通讯程序开发 结合SEMI E37标准核心规范 一、HSMS协议核心机制 1. 连接模式与状态机模式 角色 关键流程被动模式 设备端(服务端) 监听端口(默认5000)→ 接…

设置fdfs自动启动

fdfs设置服务,且自启动很久以前的fdfs服务一直在跑,只是没有设置为服务,且无自启动。使用deepseek,指导我完成了整个设置,几乎无脑。 1、问deepseek,提示词如下执行ps -ef| grep fdfs显示如下,该如何创建服务?…

完整教程:Redis GEO 模块深度解析:从原理到高可用架构实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

办公楼设计多少钱一平?广州办公楼设计收费标准

办公楼设计费的收费标准因设计公司资质、项目规模、设计复杂程度以及地区差异等因素而有所不同。那么,办公楼设计多少钱一平? 一、办公楼设计多少钱一平 1.普通设计师:按建筑平米收费,设计费用在70-130元/㎡。 2.资深…

macOS 下载汇总 (系统、应用和教程) - macOS Tahoe 26

macOS Tahoe 26, macOS Sequoia 15, macOS Sonoma 14, macOS Ventura 13, macOS Monterey 12, macOS Big Sur 11macOS 下载汇总 (系统、应用和教程) macOS Tahoe 26, macOS Sequoia 15, macOS Sonoma 14, macOS Ventur…

使用page-meta为u-popup的遮罩层添加穿透屏蔽

根节点下添加page-meta <page-meta :page-style="overflow:${showAll ? hidden : visible};"></page-meta>在打开u-popup时将变量showAll 设置为true即可 关闭时记得解开

2025年广州到吉尔吉斯斯坦海运公司权威推荐榜单:广州到吉尔吉斯斯坦运输/广州到吉尔吉斯斯坦双清门到门/广州到吉尔吉斯斯坦双清源头公司精选

在"一带一路"倡议深入发展的背景下,广州作为中国南大门与吉尔吉斯斯坦间的贸易往来日益密切,选择一家可靠的海运公司已成为众多出口企业的关键决策。 本文将基于企业实力、运输网络、清关能力、数字化服务…

AI人力资源管理系统如何让HR的工作更高效、更有判断力

随着人工智能技术的快速发展,企业数字化的重心正从流程自动化转向智能化决策。在这一过程中,人力资源管理系统的角色也在悄然改变。传统HR系统更多承担的是事务管理职能,例如考勤、薪酬、审批和档案维护,它让人力工…

etcd 参数调整

B. 参数调优(增强抗抖动能力) 以 static-pod 方式启动的 etcd,修改 /etc/kubernetes/manifests/etcd.yaml:yaml 复制# 在 command 数组里追加或修改 - --heartbeat-interval=300 # 默认 100ms → 300ms -…

2026年HR系统选型全攻略:功能、成本与落地建议

在数字化浪潮加速推进的今天,人力资源管理系统(HR系统)已经成为企业运营中不可或缺的基础设施。它不再只是人事部门的管理工具,而是支撑组织战略、驱动业务增长的核心平台。进入2026年,人工智能(AI)、远程办公、…