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

题解:P13822 「Diligent-OI R2 B」白露为霜_奇偶性_数学归纳_算法竞赛C++

总感觉这个套路在哪见过。

考虑任意两对相邻的数差值都是 111,其实就相当于任意两对相邻的数奇偶性不同。奇偶性可以用对二取模来刻画,所以不妨令 ai←ai mod 2, bi←bi mod 2a_i \leftarrow a_i \bmod 2,\ b_i \leftarrow b_i \bmod 2aiaimod2, bibimod2

如果做题够多,可能会有一个感觉:输出 Yes 的条件可能是 ∀1≤i≤n, ai≡bi (mod 2)\forall 1 \le i \le n,\ a_i \equiv b_i \ (\text{mod}\ 2)∀1in, aibi (mod 2)

简单地证明一下:

  • 必要条件证明(若可转换则奇偶性相同):$\$
    因为 a,ba,ba,b 都是折线,且每次修改只能修改一个数,所以修改后 aaa 也依然为折线,即修改后每个 aia_iai 的奇偶性不变。所以只有初始时 a,ba,ba,b 奇偶性相同,才能保证 Yes
  • 充分条件证明(奇偶性相同时可以转换):$\$
    考虑构造一种合法的操作方法。先从第一个元素开始调整:a1′=b1a_1'=b_1a1=b1;然后数学归纳:假设前 kkk 个元素已经调整为 b1,…,bkb_1,\dots,b_kb1,,bk,则对于第 k+1k+1k+1 个元素:∣ak′−ak+1′∣=1⇒ak+1′=ak′±1|a'_k - a'_{k+1}| = 1 \Rightarrow a'_{k+1} = a'_k \pm 1akak+1=1ak+1=ak±1,由于 bk+1b_{k+1}bk+1bkb_kbk 奇偶性相反,且 bk=ak′b_k = a_k'bk=ak,总能找到合适的 ak+1′a_{k+1}'ak+1 使其等于 bk+1b_{k+1}bk+1

请注意:

  1. 本题轻微卡常,建议使用更快的读入方式。
  2. 别忘了特判当 n=1n=1n=1 时答案始终为 Yes
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;void solve()
{int n; cin >> n;vector<int> a(n), b(n);generate(a.begin(), a.end(), [](){ int x; cin >> x; return x; });generate(b.begin(), b.end(), [](){ int x; cin >> x; return x; });if(n == 1){cout << "Yes\n"; return ;}for(int i = 0; i < n; i ++){if((a[i] & 1) != (b[i] & 1)){cout << "No\n"; return ;}}cout << "Yes\n";
}signed main()
{ios :: sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);int T; cin >> T;while(T --) solve();return 0;
}
http://www.xdnf.cn/news/18656.html

相关文章:

  • 将C++资源管理测试框架整合到GitLab CI/CD的完整实践指南
  • ffmpeg 问答系列-> mux 部分
  • C6.1:发射极偏置放大器
  • 阿里 通义千问 Java23种设计模式
  • IDM 下载失败排查指南:全面解析与解决方案
  • 深入解析 std::enable_if:原理、用法与现代 C++ 实践
  • 编程与数学 02-017 Python 面向对象编程 20课题、迭代器模式
  • 大数据毕业设计选题推荐-基于大数据的丙型肝炎患者数据可视化分析系统-Hadoop-Spark-数据可视化-BigData
  • 深入解析十大经典排序算法原理与实现
  • 室联人形机器人:家政服务任务结构化、技术要点、深入应用FPGA的控制系统框架设计(整合版A)
  • 【运维进阶】高可用和负载均衡技术
  • Django的Serializers与 fastapi 的Pydantic
  • 【R语言】R语言中 rbind() 与 merge() 的区别详解
  • 网络编程-创建TCP协议服务器
  • 疏老师-python训练营-Day54Inception网络及其思考
  • 屏幕类型与信号接口
  • 【KO】前端面试一
  • LLaMA-Factory 中配置文件或命令行里各个参数的含义
  • 如何利用 DeepSeek 提升工作效率
  • 10.Shell脚本修炼手册---脚本的条件测试与比较
  • 国家自然科学基金(国自然基金)申请技巧详解
  • 深度学习入门:神经网络
  • 【2025CVPR-目标检测方向】UniMamba:基于激光雷达的3D目标检测,采用分组高效曼巴语进行统一空间信道表示学习
  • Q/DR/CX7.2-2020 是中国企业标准体系中
  • 一个备份、去除、新增k8s的node标签脚本
  • `strdup` 字符串复制函数
  • 【JVM内存结构系列】二、线程私有区域详解:程序计数器、虚拟机栈、本地方法栈——搞懂栈溢出与线程隔离
  • 奇怪的前端面试题
  • 智能系统与未来生态演进初步思考
  • LangChain4j中集成Redis向量数据库实现Rag