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

题解:P12336 第三心脏

题目链接。

作者没看过第三心脏,所以作者猜测第三个心脏应该是用铁做的,由于铁粉是黑的,所以这道题目是黑。

养成良好习惯,不留根号,式子变为:

\[a^2+b^2+c^2+d^2=\left(a\oplus b\oplus c\oplus d\right)^2 \]

注意到 \(a\ge 1\) 所以 \(a^2+b^2+c^2+d^2>d^2\) 又注意到“第三心脏”中的“第”的音序为 \(d\) 的大写,所以考虑对 \(d\) 进行一些操作,我们设 \(a\oplus b\oplus c\oplus d=d+n\) 所以原式变为:

\[a^2+b^2+c^2+d^2=\left(d+n\right)^2 \]

养成良好习惯,当一个懒人,由于 \(n>0\) 所以考虑第二简单的情况 \(n=\pm1\) 时的情况,注意到

\[x\oplus 1=\begin{cases}x+1&\text{ if }x\equiv 0\pmod 2\\ x-1&\text{ if }x\equiv 1 \pmod 2 \end{cases}\]

那么我们考虑让 \(a\oplus b\oplus c=1\)\(n=-1\) 那么 \(d\equiv 1 \pmod 2\) 将上面的式子继续化简就是:

\[a^2+b^2+c^2=2d+1 \]

其中 \(2d\equiv 2\pmod 4\) 所以右式模 \(4\)\(3\),注意到完全平方数模 \(4\)\(0\)\(1\) 所以如果两式相等只能 \(a^2\equiv b^2\equiv c^2\equiv 1\pmod 4\) 而由于 \(a\) 给定,所以当 \(a\equiv0\pmod 2\) 时,这是无解的,作者太懒了不想继续了,所以考虑让 \(n=1\)

考虑构造 \(a\oplus b\oplus c=1\),设 \(a=2^n+x_{n-1}2^{n-1}+\cdots+x_0\),考虑 \(b=2^{n+1}+x_{n-1}2^{n-1}+\cdots+x_0\) 这时,\(a\oplus b=2^{n+1}+2^{n}\) 我们只需要令 \(c=2^{n+1}+2^n+1\) 即可,此时 \(d=\frac{a^2+b^2+c^2-1}{2}\) 可以证明 \(d\in\mathbb{N}^{*}\) 但是,这遇到一个问题,我们的前提是 \(d\equiv 0\pmod 2\),容易发现当 \(a^2\equiv b^2\equiv c^2\equiv 1\pmod 4\) 时,\(d\equiv 1\pmod 2\),于是我们充分发挥人类智慧,这个时候我们的 \(a=2^n+x_{n-1}2^{n-1}+\cdots+1\) 发现都是最后这个常数再搞鬼!我们可以考虑 \(b=2^{n+1}+x_{n-1}2^{n-1}+\cdots+0,c=2^{n+1}+2^n\) 这个时候就好了!

随之而来 \(a=1\) 时,我们会发现一个自相矛盾的结论,这可不行,赶快手摸一组特判!

#include<bits/stdc++.h>
#define int long long
using namespace std;
int a;
signed main(){//freopen("","r",stdin);//freopen("","w",stdout);cin>>a;if(a==1)puts("4 28 40");else{int n=log2(a);int b=a-(1<<n)+(1<<(n+1)),c=(1<<n)+(1<<(n+1))+1;if(a&1)cout<<b-1<<' '<<c-1<<' '<<((b-1)*(b-1)+(c-1)*(c-1)+a*a-1)/2;else cout<<b<<' '<<c<<' '<<(a*a+b*b+c*c-1)/2;}return 0;
}

亲测可过,请勿抄袭!

http://www.rkmt.cn/news/3728.html

相关文章:

  • Spring篇知识点(1)
  • uniapp原生插件 TCP Socket 利用文档
  • 【PyQt5】实现输入延迟响应:3秒无输入后自动读取内容
  • Windows 自带的SSH中配置X11
  • 完整教程:技术小白如何快速的了解opentenbase?--把握四大特色
  • 9.13日模考总结
  • 高斯消元
  • uni-app iOS 性能监控全流程 多器具协作的实战优化指南
  • 十八、CPU的控制流:正常控制流和异常控制流
  • 使用 C# 设置 Excel 单元格格式 - 教程
  • 【ARM Cache 及 MMU 系列文章 6.1 -- Cache maintenance 指令及相关寄存器有哪些?】
  • 每日Java并发面试系列(5):基础篇(线程池的核心原理是什么、线程池大小设置为多少更合适、线程池哪几种类型?ThreadLocal为什么会导致内存泄漏?) - 实践
  • 模仿玩家习惯的简单AI系统:GoCap
  • 浅谈马拉车
  • 十七、异常和中断响应过程的时序图
  • 直播平台搭建,浏览器中的事件循环与Node中的事件循环 - 云豹科技
  • Redisson 分布式锁的实现原理 - 教程
  • ros2--service/服务--接口 - 教程
  • 深入解析:【Unity基础】枚举AudioType各个枚举项对应的音频文件类型
  • 【关注可白嫖源码】25046基于SpringBoot的少儿编程管理系统设计与达成
  • 工具链部署实用技巧 7|模型设计帧率推理时耗时与带宽分析
  • 基于Django的“社区爱心养老管理系统”设计与开发(源码+数据库+文档+PPT) - 实践
  • 实用指南:Excel转图片excel2img库bug修复:AttributeError ‘parent‘ 问题解决方案
  • 数据结构与算法-32.图-加权无向图最小生成树
  • 数据结构与算法-32.图-加权无向图
  • 拉格朗日反演定理(LIFT)
  • 深入解析:中国AI云市场报告:阿里云份额达35.8%,高于2至4名总和
  • 暑假周进度总结
  • 万能欧几里得算法
  • 直播软件源码,聊聊Java的异常机制问题 - 云豹科技