23acyanglirui @ 2024-09-05 13:44:34
#include<bits/stdc++.h>
using namespace std;
int n,t,c;
int a[1001];
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
t=a[i]+a[j]/2+1;
while(t--){
if(t*t==a[i]+a[j]){
c++;
break;
}
}
}
}
printf("%d\n",c);
return 0;
}
蒟蒻实在是想不出解决TLE的办法了,甚至改成了scanf
也没用!
另一个WA更是错的不明不白,代码样例是ok的呀!
请看结果
by Yxy7952 @ 2024-09-05 13:52:53
@23acyanglirui
求关
#include<bits/stdc++.h>
using namespace std;
int n,t,c;
int a[1001];
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
t=a[i]+a[j];
int k=0;
while(k*k<t){
k++;
}
if(k*k==t) c++;
}
}
printf("%d\n",c);
return 0;
}
by 23acyanglirui @ 2024-09-05 14:10:15
下午我放学后再来看,谢谢!
by yxj725 @ 2024-09-05 14:23:36
#include<bits/stdc++.h>
using namespace std;
bool pfs (int n) {
int r=sqrt(n);
if (r*r==n) {
return 1;
} else {
return 0;
}
}
int a[1010];
int main (){
int n;
int cnt=0;
scanf ("%d",&n);
for (int i=1;i<=n;i++) {
scanf ("%d",&a[i]);
}
for (int i=1;i<=n;i++) {
for (int j=i+1;j<=n;j++) {
int ans=a[i]+a[j];
if (pfs(ans)==1) {
cnt++;
}
}
}
cout<<cnt;
return 0;
}
@23acyanglirui 本人比较喜欢用函数QWQ
by __Deng_Rui_Song__ @ 2024-09-05 16:09:10
@23acyanglirui 完全平方数可以预处理:
#include<bits/stdc++.h>
using namespace std;
int n,t,c;
int a[1001];
bool vis[100001];
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i*i<=1e5;i++){
vis[i*i]=1;
}
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
if(vis[a[i]+a[j]){
c++;
}
}
}
printf("%d\n",c);
return 0;
}
by 23acyanglirui @ 2024-09-05 20:08:40
@Yxy7952 @yxj725 @Deng_Rui_Song 感谢诸位dalao!!!已关!!!(蒟蒻的 Markdown很“好”)