Problem - G2 - Codeforces

//小范围数
#include<bits/stdc++.h>
using namespace std;
char a[200010];
typedef pair<int,int> P;
vector<P> q;
int vis[30];
int main()
{ios::sync_with_stdio(false);int t;cin>>t;map<long long,int> mp;while(t--){int n;cin>>n;mp.clear();for(int i=1;i<=n;i++){int x;cin>>x;mp[x]++;}map<long long,int> :: iterator it,it1;it = mp.begin();long long cut=0;for(it;it!=mp.end();it++){int temp = it->first;if(it->second>=3) cut+=1ll*(it->second)*(it->second-1)*(it->second-2);for(int j=2;j*j<=temp;j++){if(temp%(j*j)==0) cut+=1ll*mp[temp]*mp[temp/j]*mp[temp/(j*j)];}cout<<temp<<" "<<cut<<endl;}cout<<cut<<endl;}return 0;
} 
//大范围数 值域分治#include <bits/stdc++.h>
using namespace std;long long ans;
map<int,int> freq;void fac(int a){for (int i=2; i*i*i<=a; i++){if(a%(i*i)) continue;ans += 1ll*freq[a]*freq[a/i]*freq[a/(i*i)];}if(a>=1e6) return;for (int i=1; i*i<a; i++){if(a%i) continue;if(a/i > 1e9/a) continue;ans += 1ll*freq[a]*freq[i]*freq[a/i*a];}
}int main() {int t; cin >> t;while(t--){ans = 0;freq.clear();set<int> arr;int n; cin >> n;for (int i=0; i<n; i++){int a; cin >> a; freq[a]++;  arr.insert(a);}set<int> ::iterator it;for (it=arr.begin();it!=arr.end();it++){int x = *it;fac(x);ans += 1ll*freq[x]*(freq[x]-1)*(freq[x]-2);cout<<x<<" "<<ans<<endl;}cout << ans << endl;}
}

诸如求三个数满足倍数关系,值域分治相关推荐

  1. python函数编程求三个数的最小公倍数_Python求三个数的最小公倍数

    题目 求三个数的最小公倍数 思路 首先求两个数的最小公倍数,再求这个最小公倍数与第三个数的最小公倍数就是最终结果 有两种方案求两个数的最小公倍数 1. 分解质因数,也是短除法(在程序上差别不大) 循环 ...

  2. 计算机语言平均数怎么算,使用python怎么求三个数的平均值

    使用python怎么求三个数的平均值 发布时间:2021-04-27 17:31:39 来源:亿速云 阅读:64 作者:Leah 本篇文章给大家分享的是有关使用python怎么求三个数的平均值,小编觉 ...

  3. c语言学习-自定义并调用函数求三个数的最小公倍数

    c语言自定义并调用函数求三个数的最小公倍数 程序流程图: 代码: #include<stdio.h> int la1(int m ,int n,int p); int la2(int m ...

  4. c语言学习-输入三个数求三个数中的最大数

    自定义函数,通过函数调用直接找最大数,输入三个数求三个数中的最大数 程序流程图: 代码: #include<stdio.h> double ma(double l,double m,dou ...

  5. C语言中,求三个数中最大数

    C语言中,求三个数中最大数 #include<stdio.h>//以下是进行正整数的最大之间的比较,其他类型只需进行相应的格式修改 int main(){int a,b,c,max;//定 ...

  6. (C语言)用函数实现求三个数最大值

    题目描述:从键盘输入三个数,之后调用函数实现求三个数的最大值 代码实现: #include<stdio.h> int main() {int qmax(int a,int b,int c) ...

  7. 使用匿名函数求三个数的最大值

    使用匿名函数求三个数的最大值: x=input("第一个数:") y=input("第二个数:") z=input("第三个数:") a=( ...

  8. 求三个数的最小公倍数的解法之美

    从键盘上输入三个数,求其最小公倍数. 分析:最小公倍数是指能整除这三个数的公倍数中的最小者,可以利用循环穷举的方法,看是否能整除这三个数.若能整除这三个数,则输出其中的最小的数即为最小公倍数. 第一种 ...

  9. 三种算法求两个正整数的最大公约数和最小公倍数;求三个数的最大公约数和最小公倍数

    第二次作业 题目:求两个正整数的最大公约数和最小公倍数. 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出. 提高要求:1.三种以上算法解决两个正整 ...

最新文章

  1. 数据结构(07)— 线性顺序表基本操作
  2. 5大洲,32个国家:剑桥分析公司的触角到底有多远?
  3. (原)vs2013编译boost1.60库
  4. 不从事编程、学python有用吗-没想到,学会Python即使不做程序员都能月入过万!...
  5. python turtle循环图案-Python内置模块turtle绘图详解
  6. android 模仿大众点评团购卷列表多余3条时折叠,点击时显示剩余全部的功能
  7. tomcat设置https访问
  8. SpringBoot异常处理-自定义HandlerExceptionResolver
  9. 带有GSON和抽象类的JSON
  10. 非名校毕业,如何在六天面试六家顶尖科技公司,并拿到全部Offer?
  11. vs2010下libevent的使用
  12. Weka中数据挖掘与机器学习系列之Weka系统安装(四)
  13. Linux 之 NTP 服务 服务器
  14. 力软敏捷开发框架源码7.0.6旗舰版 JNPF开发平台3.3.3 3.4.1企业版/旗舰版框架
  15. 【IT项目管理】第8章 习题
  16. 基于分段解析法的单自由度反应谱程序
  17. 小程序更新后,wx.getUserInfo 接口不再出现授权弹窗,新方法获取用户信息
  18. 计算机房七氟丙烷气体灭火系统设计 施工安,计算机房七氟丙烷气体灭火系统的设计方案.doc...
  19. 计算机休眠风扇不停,Windows7系统睡眠风扇还在转怎么解决【图文教程】
  20. 暑期实训二20220621

热门文章

  1. 坚守 5 年后 「一个人的消防队」终成历史
  2. 实验一 信号、系统及系统响应
  3. voc python转java字节码工具
  4. Arthas(阿尔萨斯)
  5. 2022浙江大学软件学院人工智能保研经验贴
  6. WindowsScript
  7. IE11 全新的F12开发者工具
  8. ionic开发——打开百度地图APP如何传递参数,导航路线
  9. (已解决)windows设置共享文件夹, 局域网其他电脑怎么都访问不了
  10. html5 seo 产品经理,seo角度如何做好产品经理