當前位置:
首頁 >
【牛客 - 185A】无序组数 (思维,数学,因子个数)
發(fā)布時間:2023/12/10
17
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【牛客 - 185A】无序组数 (思维,数学,因子个数)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題干:
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 131072K,其他語言262144K
64bit IO Format: %lld
題目描述
給出一個二元組(A,B)
求出無序二元組(a,b) 使得(a|A,b|B)的組數(shù)
無序意思就是(a,b)和(b,a) 算一組.
輸入描述:
第一行數(shù)據(jù)組數(shù) T(1≤T≤10000) 接下來T行,每行兩個正整數(shù) A,B(1≤A,B≤10000)輸出描述:
共T行,每行一個結(jié)果?
示例1
輸入
復(fù)制
1 4 6輸出
復(fù)制
11說明
樣例解釋: 二元組如下: (1,1)(1,2)(1,3)(1,6) (2,1)(2,2)(2,3)(2,6) (4,1)(4,2)(4,3)(4,6) 共12組. 無序二元組如下:(1,1)(1,2)(1,3)(1,6) (2,2)(2,3)(2,6) (4,1)(4,2)(4,3)(4,6) 共11組?
解題報告:
? ?題目要求無序?qū)?#xff0c;我們先想象成有序?qū)?#xff0c;然后再減去重復(fù)的,就是最終答案了。
? ?有序?qū)芎们?#xff0c;先打表出每一個數(shù)的因子個數(shù),然后a和b的因子數(shù)相乘,就是有序?qū)Φ膫€數(shù),然后減去他倆最大公約數(shù)的因子個數(shù)(也就是重復(fù)了一次的個數(shù))(此處用組合數(shù)公式去算,也就是C(n,2)。),得到的就是答案了。
AC代碼:
#include<bits/stdc++.h> using namespace std; int d[100010]; int T; int main(){for(int i=1;i<100010;i++)for(int j=i;j<100010;j+=i)d[j]++;scanf("%d",&T);for(;T--;){int a,b;scanf("%d%d",&a,&b);printf("%d\n",d[a]*d[b]-d[__gcd(a,b)]*(d[__gcd(a,b)]-1)/2);}return 0; }?
總結(jié)
以上是生活随笔為你收集整理的【牛客 - 185A】无序组数 (思维,数学,因子个数)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超大杯命名揭晓!卢伟冰换上小米12S U
- 下一篇: 基于Android 13打造:三星Gal