NC219610. 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)