1553 互斥的数

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 
 
题目描述 Description

有这样的一个集合,集合中的元素个数由给定的N决定,集合的元素为N个不同的正整数,一旦集合中的两个数x,y满足y = P*x,那么就认为x,y这两个数是互斥的,现在想知道给定的一个集合的最大子集满足两两之间不互斥。

输入描述 Input Description

输入有多组数据,每组第一行给定两个数N和P(1<=N<=10^5, 1<=P<=10^9)。接下来一行包含N个不同正整数ai(1<=ai<=10^9)。

输出描述 Output Description

输出一行表示最大的满足要求的子集的元素个数。

样例输入 Sample Input

4 2

1 2 3 4

样例输出 Sample Output
数据范围及提示 Data Size & Hint
//双哈希
#include<cstdio>
#include<cstring>
#include<algorithm>
#define mod1 10007
#define mod2 10009 using namespace std;
int n,tot,p;
int a[],b[][]; int main()
{
scanf("%d%d",&n,&p);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
}
sort(a+,a+n+);
for(int i=;i<=n;i++)
{
long long x,y,hash1,hash2;
x=a[i]%mod1;hash1=((a[i]%mod1)*p)%mod1;
y=a[i]%mod2;hash2=((a[i]%mod2)*p)%mod2;
if(b[x][y]==) b[hash1][hash2]=,tot++;
}
printf("%d\n",tot);
return ;
} /*
贪心思想+map实现
找出不互质的数的集合,就是把互斥的数删去,那么当有两个互斥的数时,删掉哪一个呢?删掉后面的。为什么?当删掉后面的数时,这个数前面的会入选,这个数后面的与它互斥的数也会入选,因为每个数都是不同的。
举个例子:
3 2
1 2 4
当枚举到1时 会发现1和2有冲突
我们毫不犹豫的删去2 这样4才能也被选入
样例2
4 2
1 2 4 8
当我们枚举到1时 还是发现1和2有冲突
还是删去2 这样4能被选入 而8必须被删去
*/ #include<iostream>
#include<algorithm>
#include<map>
using namespace std;
const int maxn=;
int n,m,ans,a[maxn];
map<int,int> hash;
int main()
{
cin>>n>>m;
for(int i=;i<=n;i++)
cin>>a[i];
sort(a+,a+n+);
for(int i=;i<=n;i++)
if(!hash[a[i]])
{
hash[a[i]*m]=;
ans++;
}
cout<<ans;
return ;
}

心若向阳,无言悲伤

最新文章

  1. spring mvc统一异常处理(@ControllerAdvice + @ExceptionHandler)
  2. Verilog学习笔记简单功能实现(五)...............序列检测设计
  3. css3 -- 过渡与动画
  4. 导入maven工程遇见的问题【问题】
  5. IO流的练习 —— 创建用户注册、登陆案例
  6. [ZETCODE]wxWidgets教程五:布局管理
  7. 生成PDF并下载。
  8. JSON 理解
  9. entOS7查看开放端口命令
  10. apply和call与this
  11. 51Nod1222 最小公倍数计数 数论 Min_25 筛
  12. Web前端开发标准规范
  13. 简单规划dp sumsets
  14. 【BZOJ3879】SvT(后缀自动机,虚树)
  15. 二叉树的镜像(python)
  16. HTML day48
  17. SQLserver视图修改sql
  18. 1031 Hello World for U (20 分)
  19. windows 7 Alt+Tab 的风格改成 XP 风格
  20. 7407 74LS07 74LV07 74LVC07

热门文章

  1. html option选中 回显 取值
  2. linux nethogs-终端下的网络流量监控工具
  3. accept阻塞
  4. 洛谷 4364 [九省联考2018]IIIDX
  5. js eslint语法规范错误提示代码
  6. Maven学习总结(30)——Maven项目通用三级版本号说明
  7. RNN and Language modeling in TensorFlow
  8. codevs1226 倒水问题
  9. [bzoj1612][Usaco2008 Jan]Cow Contest奶牛的比赛_dfs
  10. SiteMesh2-sitemesh.xml的PageDecoratorMapper映射器的用法