题目描述

集合是数学中的一个概念,用通俗的话来讲就是:一大堆数在一起就构成了集合。集合有如

下的特性:

•无序性:任一个集合中,每个元素的地位都是相同的,元素之间是无序的。

•互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。

•确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居

其一,不允许有模棱两可的情况出现。

例如 A = {1, 2, 3} 就是一个集合。我们可以知道, 1 属于 A ,即 1 ∈ A ; 4 不属于 A ,

即 4 ∉ A 。一个集合的大小,就是其中元素的个数。

现在定义一个特殊的 k-集合,要求满足:

•集合的所有特性

•对任意一个该集合内的元素 x ,不存在一个数 y ,使得 y = kx 并且 y 属于该集合。即

集合中的任意一个数,它乘以 k 之后的数都不在这个集合内

给你一个由 n 个不同的数组成的集合,请你从这个集合中找出一个最大的 k-集合。

输入输出格式

输入格式:

第 1 行:两个整数: n 和 k

第 2 行:n 个整数: a[i] 表示给定的集合

输出格式:

第 1 行:一个整数: ans 表示最大的 k-集合的大小


思路

STL大法好!很棒的是有一种叫set的数据结构,还是STL里面的!

暴力出奇迹

#include <cstdio>
#include <iostream>
#include <algorithm>//sort函数要用到STL的算法库
#include <set>//STL中的集合数据结构,要用set头文件
using namespace std;
#define repeat(i,a,b) for(i=a;i<=b;i++)//为了省事而已
set<long long> A;//声明一个long long型的集合,名称为A
// 构造set集合的主要目的是为了快速检索
int main()
{long long n,i,m,a[100001]={};scanf("%lld%lld",&n,&m);repeat(i,1,n){scanf("%lld",&a[i]);}sort(a+1,a+n+1);//排序是必须的,否则会有几个点过不去。[可知当前是否选取影响不到比它大的数]repeat(i,1,n){if(a[i]%m || A.find(a[i]/m)==A.end())//模拟题意,如果不是m的倍数或者集合中没有a[i]/k,满足条件就插入集合{A.insert(a[i]);//insert()方法把元素插入到集合中}}printf("%d\n",A.size());//size()方法输出A集合中元素数目return 0;
}

[洛谷]P1978 集合 (#数学 -1.3)(#STL -1.1)相关推荐

  1. 洛谷试炼场-简单数学问题-二分查找

    洛谷试炼场-简单数学问题 P1147 连续自然数和 题解: 本题给定一个数n,求连续自然数的和为n,用一个前缀数组,low_bound,upper_bound,查找是否是同一个数.O(nlog(n)) ...

  2. 洛谷 P3216 [HNOI2011]数学作业

    PS:如果读过题了可以跳过题目描述直接到题解部分 提交链接:洛谷 P3216 [HNOI2011]数学作业 题目 题目描述 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正 ...

  3. 洛谷P2433 小学数学 N 合一

    写完了这道题结果脑子断电把浏览器关了......打开一看 没保存 寄 传送门:[深基1-2]小学数学 N 合一 - 洛谷 第一题 第二题 第三题 这几道题没啥好说的,直接输出就彳亍了 cout < ...

  4. 洛谷 P2415 集合求和【数学公式/模拟】

    给定一个集合s(集合元素数量<=30),求出此集合所有子集元素之和. 输入输出格式 输入格式: 集合中的元素(元素<=1000) 输出格式: 和 输入输出样例 输入样例#1: 2 3 输出 ...

  5. 洛谷P1466 集合 Subset Sums

    P1466 集合 Subset Sums 162通过 308提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 对于从1到N (1 ...

  6. 洛谷P2286 [HNOI2004]宠物收养所 [STL,平衡树]

    题目传送门 宠物收养所 题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的 ...

  7. 洛谷——P2415 集合求和

    P2415 集合求和 题目描述 给定一个集合s(集合元素数量<=30),求出此集合所有子集元素之和. 输入格式 集合中的元素(元素<=1000) 输出格式 和 输入输出样例 输入 #1复制 ...

  8. 洛谷 P1491 集合位置

    P1491 集合位置 题目描述 每次有大的活动,大家都要在一起"聚一聚",不管是去好乐迪,还是避风塘,或者汤姆熊,大家都要玩的痛快.还记得心语和花儿在跳舞机上的激情与释放,还记得草 ...

  9. 洛谷P1621 集合

    题目描述 Caima 给你了所有 [a,b][a,b] 范围内的整数.一开始每个整数都属于各自的集合.每次你需要选择两个属于不同集合的整数,如果这两个整数拥有大于等于 pp 的公共质因数,那么把它们所 ...

最新文章

  1. Nat. Biotechnol.| 基于生物活性建模识别抗SARS-CoV-2药物
  2. ZenHub已集成于GitHub企业版
  3. Matlab Tricks(二十九) —— 使用 deal 将多个输入赋值给多个输出
  4. .Net(C#)用正则表达式清除HTML标签(包括script和style),保留纯本文(UEdit中编写的内容上传到数据库)...
  5. Java web.xml 配置详解
  6. 设置UITableView设置contentsize
  7. python实现给定一个字符串,寻找最长非重复子串
  8. java ipa签名_iOS苹果应用IPA一键签名工具及重签教程
  9. 搭建GB28181本次测试步骤-SIP信令服务器
  10. 第十六周学习生活总结
  11. 洛谷 U87052 一线天
  12. 今日金融词汇---后复权,是什么?
  13. NLP:MRC常用数据集
  14. 1. Win 10 :在此处打开命令窗口
  15. Android背景和音乐
  16. C++编写COM组件
  17. JS事件监听手机屏幕触摸事件 Touch
  18. c语言有效字符序列称为,C语言选择题库.docx
  19. app error login.php,自定义错误Think\Think::appError 设计有问题!!
  20. linkcloud:KVM虚拟化渐趋成熟 可与XEN和Vmware比肩

热门文章

  1. c语言void结尾,C语言中void*详解及应用
  2. 科普:手机的各种传感器原理及用途
  3. 黑盒优化技术评测基准RABBO介绍
  4. Hadoop 学习笔记(三)常用命令
  5. C++ 几个特殊符号
  6. 【风马一族_构思】时光穿梭机
  7. LInux常用的60个命令,小白必须掌握的命令
  8. 4.3 人工智能典型岗位的能力要求
  9. 洛谷 U5750 疯暴英雄
  10. [百家号]大英帝国的人口和面积比现在的英国大多少?