题目链接。

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

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

\[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;
}

亲测可过,请勿抄袭!

题解:P12336 第三心脏的更多相关文章

  1. [题解]RQNOJ PID85 三个袋子

    链接:http://www.rqnoj.cn/problem/85 思路:一个排列问题,递推式很简单,f(n+1)=3*f(n)-1 ,由此可以推出通项公式,f(n)=0.5*3^(n-1)+0.5 ...

  2. Agent J(求三个圆围成的区域面积)

    A - A Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status P ...

  3. 【codeforces】【比赛题解】#868 CF Round #438 (Div.1+Div.2)

    这次是Div.1+Div.2,所以有7题. 因为时间较早,而且正好赶上训练,所以机房开黑做. 然而我们都只做了3题.:(. 链接. [A]声控解锁 题意: Arkady的宠物狗Mu-mu有一只手机.它 ...

  4. 【题解】BZOJ 3065: 带插入区间K小值——替罪羊树套线段树

    题目传送门 题解 orz vfk的题解 3065: 带插入区间K小值 系列题解 一 二 三 四 惨 一开始用了一种空间常数很大的方法,每次重构的时候merge两颗线段树,然后无限RE(其实是MLE). ...

  5. 10.9 guz模拟题题解

    感谢@guz 顾z的题题解 考试共三道题,其中 第一题help共10个测试点,时间限制为 1000ms,空间限制为 256MB. 第二题escape共20个测试点,时间限制为1000ms2000ms, ...

  6. 【牛客网】数据库SQL实战(题解)

    1.查找最晚入职员工的所有信息 [题解] hire_date可能存在重复值,所以需要找到hire_date的最大值,然后再筛选,才能hire_date最晚的记录都筛选出来. [代码] 1 SELECT ...

  7. 2020级cpp机考模拟题A卷-#题解1

    为了各位朋友的身心健康(不是),我们按照题目难度顺序来写题解. 第一次写题解,希望多点包容和鼓励(恬不知耻 1:谁先输出-4 题意: 输入3个整数,按从大到小的顺序输出,每两个数字间加一个空格. 题解 ...

  8. [Noip2016]蚯蚓 D2 T2 队列

    [Noip2016]蚯蚓 D2 T2 Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯 ...

  9. Bzoj3663/4660 CrazyRabbit

    题意:给定平面上一个圆和一堆圆外的点,要求选出尽可能多的点使得它们之间两两连线都不和圆相交.保证任意两点连线不和圆相切.点数<=2000 这题是很久以前在某张课件上看见的.看了题解还搞了三小时, ...

  10. POJ 2486 Apple Tree(树形DP)

    题目链接 树形DP很弱啊,开始看题,觉得貌似挺简单的,然后发现貌似还可以往回走...然后就不知道怎么做了... 看看了题解http://www.cnblogs.com/wuyiqi/archive/2 ...

随机推荐

  1. Spring AI Alibaba智能测试用例生成

    还在为手动编写测试用例秃头吗?面对复杂需求文档,一个一个抠测试点,不仅效率低,还容易遗漏关键场景?为了解决该问题,笔者依托Spring AI开发了测试用例生成工具~ ​后端源码:https://git ...

  2. .NET 8性能优化全攻略:让你的应用飞起来!

    大家好!我是.NET修仙日记的掌门人,今天我们来聊聊.NET 8的性能优化技巧.随着.NET 8的发布,微软带来了更多性能改进的可能性.无论你是开发Web应用.微服务还是桌面程序,这些优化技巧都能让你 ...

  3. R语言包学习之tidyr包:数据结构重构

    ↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ tidyr包 tidyr包主要涉及的功能和函数有: 1)缺失值的简单补齐 2)长表变宽表与宽表变长表 gather-把宽度较大的 ...

  4. Day10 备战CCF-CSP练习

    Day10 题目描述 十滴水是一个非常经典的小游戏. 小 \(C\) 正在玩一个一维版本的十滴水游戏. 我们通过一个例子描述游戏的基本规则. 游戏在一个$ 1×c$ 的网格上进行,格子用整数$ x(1 ...

  5. MCU之Microchip PIC16F17146 Curiosity NANO Evaluation Kit评测报告

    对比完 RISC(Proprietary) 与 RISC-V(Open Source),来点 Microchip 的 PIC16F17146 Curiosity Nano(Revision 4 has ...

  6. Win10纯净版电脑录屏功能不可用的问题

    有很多深度官网的小伙伴,都知道在Windows 10系统有录屏功能,而有win10纯净版的用户,打开自带录屏功能却突然失败了的问题,这该怎么解决呢?下面深度技术小编就带大家看看详细的处理方法,可以参考 ...

  7. Treap 模板代码

    struct Node { int pri, data, num, sz, ch[2], fa; }t[maxn]; int pos; struct Treap { int root; int new ...

  8. vagrant 学习笔记 ------------(批量创建虚拟机)

    # 创建的虚拟机的数组 vm_list = [ { # hash map "name" => "node-1", "cpu" => ...

  9. 如何快速实现直播美颜功能 - 接入美颜SDK详解

    1 音视频SDK和直播美颜SDK-使用导读 1.1 AI视觉应用-美颜SDK 实时音视频是 ZEGO 的一款实时音视频互动服务产品,开发者可通过其灵活易用的 API,构建音视频应用.同时,ZEGO 的 ...

  10. 仅一个 Python 文件,狂揽近 2 万 Star「GitHub 热点速览」

    朋友们,GitHub 热点速览并没有"停更"哦! 最近断更,是因为榜单几乎被大模型"霸占":GLM-4.5(智谱).Step3(阶跃星辰).Intern-S1( ...