题目2270:蓝桥杯2016年第七届真题-四平方和

#include<iostream>

#include<cstring>

#include<vector>

using namespace std;

const int N=5000010;

int c[N],d[N];

int n;

vector<int>v(1);

void init(){

memset(c,-1,sizeof(c));

for(int i=1;i*i<2*n;i++){

v.push_back(i*i);

}

for(int i=0;v[i]<=n;i++){

for(int j=i;v[i]+v[j]<=n;j++){

int sum=v[i]+v[j];

if(c[sum]==-1){//第一次遇见的数

c[sum]=i;

d[sum]=j;

}

}

}

}

int main(){

cin>>n;

init();

int res;

for(int i=0;v[i]<=n;i++){

for(int j=i;v[j]+v[i]<=n;j++){

res=n-v[i]-v[j];

if(c[res]!=-1){//表示该数已经被记录过,可以拆成两个数平方的形式

cout<<i<<" "<<j<<" ";

cout<<c[res]<<" "<<d[res];

return 0;

}

}

}

}

相关推荐
ZhengEnCi16 小时前
S10-蓝桥杯 17822 乐乐的积木塔
算法
贾斯汀玛尔斯16 小时前
每天学一个算法--拓扑排序(Topological Sort)
算法·深度优先
t***54416 小时前
如何配置Orwell Dev-C++使用Clang
开发语言·c++
大龄程序员狗哥16 小时前
第25篇:Q-Learning算法解析——强化学习中的经典“价值”学习(原理解析)
人工智能·学习·算法
exp_add316 小时前
质数相关知识
算法
CoderCodingNo16 小时前
【信奥业余科普】C++ 的奇妙之旅 | 13:为什么 0.1+0.2≠0.3?——解密“爆int”溢出与浮点数精度的底层原理
开发语言·c++
小辉同志16 小时前
215. 数组中的第K个最大元素
数据结构·算法·leetcode··快速选择
小O的算法实验室17 小时前
2025年IEEE TITS,基于矩阵的进化计算+面向无线传感器网络数据收集无人机路径规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
OidEncoder17 小时前
编码器分辨率与机械精度的关系
人工智能·算法·机器人·自动化
memcpy017 小时前
LeetCode 2615. 等值距离和【相同元素分组+前缀和;考虑距离和的增量】中等
算法·leetcode·职场和发展