列表

详情


NC219610. 3.6数对

描述

在3月6日,作为队内数论大佬的磊哥,定义了“3.6数对”。
定义为,如果一个数对满足,则称为“3.6数对”。
现在有一个长度为的数组,从中可以选出多少对,满足(a_i,a_j)为“3.6数对”?

输入描述

第一行一个正整数表示测试组数。
接下来行,每组第一行一个正整数表示数组长度。
接下来第二行个正整数表示数组的元素。

输出描述

每组输出一个整数表示答案。

示例1

输入:

2
2
3 6
5
1 2 1 3 6

输出:

1
3

说明:


原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++11) 解法, 执行用时: 111ms, 内存消耗: 468K, 提交时间: 2021-03-21 13:15:21

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
	ll n;
	cin>>n;
	while(n--){
		ll a[300]={0},m,t;
		cin>>m;
		for(ll i=0;i<m;i++)
			cin>>t,a[t]++;
		t=0;
		for(ll i=1;i<=100;i++)
			t=t+(a[i]*a[i*2]);
		cout<<t<<endl;
	}
}

C 解法, 执行用时: 72ms, 内存消耗: 356K, 提交时间: 2023-01-09 19:22:39

#include<stdio.h>
int main()
{
	int i,j,k,l,n;
	scanf("%d",&l);
	for(j=0;j<l;j++){
		int a[101]={0};
	scanf("%d",&n);
	for(i=0;i<n;i++){
	scanf("%d",&k);a[k]++;}
	int sum=0;
	for(i=1;i<=50;i++){
			sum+=a[i]*a[i*2];
	}
	printf("%d\n",sum);}
}

Python3(3.9) 解法, 执行用时: 1722ms, 内存消耗: 3812K, 提交时间: 2021-03-21 13:16:32

t = int(input())
for i in range(t):
    l = int(input())
    num = list(map(int,input().split()))
    cot = 0
    for x in range(1,101):
        cot += num.count(x*2)*num.count(x)
    print(cot)

上一题