题目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;

}

}

}

}

相关推荐
郝学胜-神的一滴17 小时前
Qt 入门 01-01:从零基础到商业级客户端实战
开发语言·c++·qt·程序人生·软件构建
宏笋17 小时前
C++ thread的detach()方法详解
c++
旖-旎17 小时前
深搜练习(单词搜索)(12)
c++·算法·深度优先·力扣
企客宝CRM18 小时前
2026年中小企业CRM选型指南:企客宝CRM处于什么位置?
android·算法·企业微信·rxjava·crm
橙淮18 小时前
二叉树核心概念与Java实现详解
数据结构·算法
大卡片18 小时前
C++的基础知识点
开发语言·c++
米罗篮18 小时前
DSU并查集 & 拓展欧几里得-逆元
c++·经验分享·笔记·算法·青少年编程
橙淮18 小时前
双指针法:高效算法解题的利器
算法
初心未改HD18 小时前
深度学习之MLP与反向传播算法详解
人工智能·深度学习·算法