洛谷 P1978 集合
来源:互联网 发布:r混合编程 epub 编辑:程序博客网 时间:2024/06/18 14:24
题目:
给定一个集合,选集合中的一些数,使它们乘以 k 之后的数都不在这个集合内
给你一个由 n 个不同的数组成的集合,请你从这个集合中找出一个最大的 k-集合。
题解
由于考虑到肯能超long long的情况,从大到小排序,对于每一个没被标记数
程序
#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<algorithm>#include<functional>#define LL long longusing namespace std;int n,ans,m;LL a[100005];int b[100005];int fen(int f,int b,LL num){ int m; while(f<b){ m=(f+b)>>1; if(a[m]<num) b=m-1; else if(a[m]>num) f=m+1; else return m; } return f;}bool cmp(LL x,LL y){ return x>y;}int main(){ freopen("set.in","r",stdin); freopen("set.out","w",stdout); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); } sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++){ if(!b[i]){ ans++; if(a[i]%m==0){ int place=fen(1,n,a[i]/m); if(a[place]*m==a[i]) b[place]=1; } } } printf("%d",ans); return 0;}
阅读全文
0 0
- 洛谷 P1978 集合
- p1978 Fibonacci数列 3
- wikioi p1978 Fibonacci数列 3
- [26] Vijos P1978 神奇的幻方(模拟)
- 洛谷2415集合求和
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 第二周项目—汉诺塔
- "could not create the java virtual machine"启动eclipse报错
- JQuery的2种each方法的区别
- PAT (Basic Level) Practise (中文) 1049. 数列的片段和(20)
- JAVA之Servlet的学习
- 洛谷 P1978 集合
- (转)基于FPGA技术的FAST行情解码研究
- 【PHP】从数列1,2,3.......n 中随意取几个数,使其和等于m(一段神奇的代码)
- iOS入门之打包静态库
- Android Studio配置Gradle版本Refreshing.....
- czl蒻蒟的OI之路6
- JAVA设计模式之单例模式-大佬博客
- C/C++ — 浅析C++的强制类型转换
- 二叉树的基本操作 【二叉树】