题意:

  给一个数组,给你一个k,找出两个数字的积可以变成xk的数对对数

解析:

  当且仅当,两个数进行质因子分解后每个因子的个数都是k的倍数个就说明这是满足条件的一对,可以让每个因子个数%k用map找对应的数。

代码:

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <vector>
#include <cstdio>
#include <queue>
#include <cmath>
#include <map> using namespace std; typedef long long LL; const int mod=1e9+;
const int maxn=1e5+; int n,k; struct node{
int x,num;
node(){}
node(int _x,int _num):x(_x),num(_num){}
bool operator<(const node &s)const{
if(x!=s.x)return x<s.x;
else return num<s.num;
}
}; vector<node>nodes;
map<vector<node>,int>mp; void f(int x){
int o=;
for(int i=;i<=x/i;i++){
if(x%i==){
int num=;
while(x%i==){
num++;
x/=i;
}
if(num%k!=){
o=;
nodes.push_back(node(i,num%k));
}
}
}
if(x!=)nodes.push_back(node(x,));
if((int)nodes.size()==&&(o==||x==)){
//nodes.push_back(node(x,1));
}
} int main(){
scanf("%d%d",&n,&k);
long long num=;
for(int i=;i<n;i++){
int x;
scanf("%d",&x);
nodes.clear();
f(x);
for(int i=;i<(int)nodes.size();i++){
nodes[i].num=k-nodes[i].num;
}
if(mp[nodes]!=){
num+=mp[nodes];
}
for(int i=;i<(int)nodes.size();i++){
nodes[i].num=k-nodes[i].num;
//printf("%d %d\n",nodes[i].x,nodes[i].num);
}
mp[nodes]++;
//printf("%d %lld\n",i,num);
}
printf("%lld\n",num);
return ;
}

最新文章

  1. 4-安装workpress
  2. Echarts-画堆积柱状图
  3. echarts入门基础,画折线图
  4. SPARK如何使用AKKA实现进程、节点通信
  5. Delphi2010生成GB2312字库乱码问题
  6. Java 集合的简单实现 (ArrayList &amp; LinkedList &amp; Queue &amp; Stack)
  7. 记一次 联想杨天A4600K 安装操作系统遇到的尴尬
  8. Google Dremel数据模型详解(下)
  9. 手把手教你轻松实现listview上拉加载
  10. oracle 基础查询语句
  11. 【poj1741】Tree 树的点分治
  12. java面试题:基础知识
  13. “吃神么,买神么”的第一个Sprint计划(第二天)
  14. 手动模拟输出json
  15. 查看PHP以字母"E"开头的常量
  16. elipse中开发servlet,直接run as 时出现404错误的解决方法
  17. 操盘策略:KDJ三线合一 必定孕育大牛股
  18. js event鼠标事件
  19. 2018.11.19 Struts2中Action类的书写方式
  20. XTU | 人工智能入门复习总结

热门文章

  1. Babel配置中的presets、plugins、各个阶段stage的含义
  2. 双向绑定Proxy VS Object.defineProperty
  3. 9种分布式ID生成之 美团(Leaf)实战
  4. JavaScript——基础知识,开始我们的js编程之旅吧!
  5. 使用jquery封装的动画脚本(无动画、css3动画、js动画)
  6. Sap Hana 关于BP的一些理解
  7. .net对象与IntPtr&quot;互转&quot;
  8. Django单元测试中Fixtures用法
  9. oracle 数据库 Cause: java.sql.SQLSyntaxErrorException: ORA-00904: &quot;BODY&quot;: 标识符无效
  10. Python之基础、细节