AcWing 1221. 四平方和
原题链接
简单
作者:
ls131
,
2021-02-09 09:21:58
,
所有人可见
,
阅读 325
#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;
const int N=2500010; //4个数
typedef pair<int,int>PII;
#define x first
#define y second
unordered_map<int,PII> S; //映射 c^2+d^2的int 和 c d的PII 预处理所有的cd 从 ab循环中找符合的cd
int n,m;
int main(){
cin>>n;
for(int c=0;c*c<=n;c++)
for(int d=c;c*c+d*d<=n;d++)
{
int t=c*c+d*d;
if(S.count(t)==0) S[t]={c,d};//存储下所有可用的cd
}
for(int a=0;a*a<=n;a++)
for(int b=a;a*a+b*b<=n;b++)
{
int t=n-a*a-b*b;
if(S.count(t)){
printf("%d %d %d %d",a,b,S[t].x,S[t].y);
return 0;
}
}
return 0;
}
这个现在超时了把用不了了好像