Codeforces Round #596 (Div. 2)D.Power Products
2024-08-29 22:47:56
题意:
给一个数组,给你一个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 ;
}
最新文章
- 4-安装workpress
- Echarts-画堆积柱状图
- echarts入门基础,画折线图
- SPARK如何使用AKKA实现进程、节点通信
- Delphi2010生成GB2312字库乱码问题
- Java 集合的简单实现 (ArrayList &; LinkedList &; Queue &; Stack)
- 记一次 联想杨天A4600K 安装操作系统遇到的尴尬
- Google Dremel数据模型详解(下)
- 手把手教你轻松实现listview上拉加载
- oracle 基础查询语句
- 【poj1741】Tree 树的点分治
- java面试题:基础知识
- “吃神么,买神么”的第一个Sprint计划(第二天)
- 手动模拟输出json
- 查看PHP以字母"E"开头的常量
- elipse中开发servlet,直接run as 时出现404错误的解决方法
- 操盘策略:KDJ三线合一 必定孕育大牛股
- js event鼠标事件
- 2018.11.19 Struts2中Action类的书写方式
- XTU | 人工智能入门复习总结
热门文章
- Babel配置中的presets、plugins、各个阶段stage的含义
- 双向绑定Proxy VS Object.defineProperty
- 9种分布式ID生成之 美团(Leaf)实战
- JavaScript——基础知识,开始我们的js编程之旅吧!
- 使用jquery封装的动画脚本(无动画、css3动画、js动画)
- Sap Hana 关于BP的一些理解
- .net对象与IntPtr";互转";
- Django单元测试中Fixtures用法
- oracle 数据库 Cause: java.sql.SQLSyntaxErrorException: ORA-00904: ";BODY";: 标识符无效
- Python之基础、细节