Codevs 1533互斥的数-hash
来源:互联网 发布:肌研洗面奶怎么样 知乎 编辑:程序博客网 时间:2024/06/16 10:43
题目链接:右转进入题目
题目大意:
给定n个不同的数和p,要求选择尽可能多的数,使得选择的数中,任意两个大的都不是小的p倍。
数值<=1e9。
题解:
首先排个序。然后从小到大考虑每个数字,如果当前数字没有被“排斥”,就cnt++,并把它排斥的(即比他大的且是它p倍)数排斥走。
最后cnt就是答案。
如果不用map的话辣不就是hash么。
然而并不想写双hash,一开始mod用的1e5+3,全WA
后来改为1e6+7,WA四个
后来改为1e8+3,WA一个
后来改为102030405,就AC了啊啊23333333336666666666..........
hash代码如下:
#include<iostream>#include<algorithm>#include<cstdio>#define MAXN 100010#define mod 102030405#define ull unsigned long long intusing namespace std;int a[MAXN];bool hash[mod+5];int main(){int n,p;scanf("%d%d",&n,&p);for(int i=1;i<=n;i++){scanf("%d",&a[i]);hash[a[i]%mod]=true;}sort(a+1,a+n+1);int cnt=0;for(int i=1;i<=n;i++)if(hash[a[i]%mod]){cnt++;if(hash[(ull)a[i]*p%mod])hash[(ull)a[i]*p%mod]=false;}printf("%d\n",cnt);return 0;}
1 0
- Codevs 1533互斥的数-hash
- 【CODEVS 1553】互斥的数 哈希表
- CODEVS 1553 互斥的数
- 【CodeVS】1553 互斥的数 开放性 按位dp+排序+单调性 并查集+Hash
- 互斥的数
- 互斥的数
- 互斥的数
- CODE【VS】1553 互斥的数(hash表+map函数)
- wikioi1553 互斥的数
- codevs1553 互斥的数
- 1553 互斥的数
- CodeVs 数的计算;
- wikioi 1553 互斥的数
- wikioi p1553 互斥的数
- wikioi 1553 互斥的数
- 互斥的数(贪心)
- [CODEVS1553]互斥的数(stl)
- CodeVs 1011 数的计算
- spring 的定时任务 学习备忘
- 关于java的初次认识
- RelativeLayout用java代码敲布局
- temp
- Android反编译
- Codevs 1533互斥的数-hash
- Android问题—Android中Cookie问题的处理
- BZOJ-1191 (二分图匹配)
- 表单验证 ajax异步请求实例 json传参
- OpenGL3.3+GLFW+GLEW+GLM实现小人行走动画
- 数据挖掘---分类评估指标和回归问题
- mysql注入绕过空格过滤的方法
- 递归递推练习——D
- 设计模式(十九) 备忘录模式