Wannafly挑战赛27

阅读: 评论:0

Wannafly挑战赛27

Wannafly挑战赛27

链接:
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

“White shores, and beyond. A far green country under a swift sunrise.”--灰魔法师

给出长度为n的序列a, 求有多少对数对 (i, j) (1 <= i < j <= n) 满足 ai + aj 为完全平方数。

输入描述

第一行一个整数 n (1 <= n <= 10^5)
第二行 n 个整数 ai (1 <= ai <= 10^5)

输出描述

输出一个整数,表示满足上述条件的数对个数。

输入

3
1 3 6

输出

2

说明

满足条件的有 (1, 2), (2, 3) 两对。

解题思路

直接暴力就可以了。

#include <stdio.h>
#define N 250050
int a[N];
int main()
{int m, n;long long sum = 0;scanf("%d", &n);for (int i = 0; i < n; i++){scanf("%d", &m);for (int j = 1; j < 500; j++)//遍历1~250000之间的完全平方数if (j * j >= m)sum += a[j * j - m];//首先满足j * j - m >= 0,然后用j * j - m与前面的m配对a[m]++;//m的个数加1,放在后面就是保证j * j - m与前面的m配对,不包括它本身}printf("%lldn", sum);return 0;
}

 

本文发布于:2024-01-29 17:16:41,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170651980316974.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:挑战赛   Wannafly
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23