传送门:CF

正文:

这道题是一道数论题,有两种解法,都挺有趣的。

解法一:

#include<bits/stdc++.h>
#define maxn 1000005
using namespace std;
int a[maxn];
bool vis[maxn];
int main()
{ios::sync_with_stdio(false);cin.tie(0);int n,ans=0; cin>>n;for(int i=1;i<=n;i++) cin>>a[i],vis[a[i]]=1;for(int i=1;i<=1e6;i++){if(vis[i]) continue;int p=-1;for(int j=2*i;j<=1e6;j+=i){if(!vis[j]) continue;if(p==-1) p=j/i;else{p=__gcd(p,j/i);if(p==1) {ans++,vis[j]=1; break;}}}}cout<<ans;return 0;
}

这里用了一个性质:若干个数只要有两个数是互质的,则

我们要判断  可以不可以通过更大的数得到,就要看存不存在两个数,满足

解法二:(代码取自jiangly)

#include <bits/stdc++.h>using i64 = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int n;std::cin >> n;int m = 0;std::vector<int> a(n);for (int i = 0; i < n; i++) {std::cin >> a[i];m = std::max(m, a[i]);}std::vector<int> f(m + 1);for (auto x : a) {f[x]++;}for (int i = 1; i <= m; i++) {for (int j = 2 * i; j <= m; j += i) {f[i] += f[j];}}int ans = 0;for (int i = 1; i <= m; i++) {bool nice = f[i] > 0;for (int j = 2 * i; j <= m; j += i) {if (f[i] == f[j]) {nice = false;}}ans += nice;}std::cout << ans - n << "\n";return 0;
}

D. Not Adding相关推荐

  1. android.util.AndroidRuntimeException: requestFeature() must be called before adding content

    问题 Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding co ...

  2. R语言ggplot2可视化、在可视化区域中自定义添加多个大小不同矩形阴影区域、自定义配置大小不同矩形阴影区域的颜色(Adding multiple shadows/rectangles)

    R语言ggplot2可视化.在可视化区域中自定义添加多个大小不同矩形阴影区域.自定义配置大小不同矩形阴影区域的颜色(Adding multiple shadows/rectangles) 目录

  3. R语言在可视化图像中添加文本(Adding Text to plot)

    R语言在可视化图像中添加文本(Adding Text to plot) 创建一个好的可视化包括引导读者,使用图形讲述一个直观的故事.在某些情况下,这个故事可以以完全直观生动的方式呈现,而不需要添加文本 ...

  4. SAP WM中阶之存储类型上架策略I(Adding to existing stock)

    SAP WM中阶之存储类型上架策略I(Adding to existing stock) SAP WM模块里,有很多上架策略.Adding to existing stock是一种常用的上架策略.这种 ...

  5. WorkFlow入门Step.4—Adding Procedural Elements-For-WF4.0-(续)

    开篇 上篇,我们简单的说明了WF的入门,那么院子里面已经有很多的高手,写了不少的关于工作流的应用,最近在集成工作流平台的过程中也是发现了不少的问题和心得体会,工作流果真不只是审批那么简单,复杂度可见非 ...

  6. 007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】

    索引: 目录索引 Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Ch ...

  7. Adding a new op when using tensorflow in windows

    Adding a new op when using tensorflow in windows 没整ok,可以参考资料: https://github.com/tensorflow/models/i ...

  8. Adding a horizontal separator to a Flex PopUpButton control’s pop up menu (redux)

    Adding a horizontal separator to a Flex PopUpButton control's pop up menu (redux) http://blog.flexex ...

  9. [Security] Automatically adding CSRF tokens to ajax calls when using jQuery--转

    地址:http://erlend.oftedal.no/blog/?blogid=118 When building a ajax based application, you want to pro ...

  10. Android开发指南(42) —— Adding Custom Suggestions

    前言 本章内容为 Android开发者指南的 Framework Topics/Search/Adding Custom Suggestions章节,译为"添加自定义建议项",版本 ...

最新文章

  1. 面向对象(继承,多态)
  2. 想快速拥有个人网站?来试试这个...
  3. 关于Android的自动化测试,你需要了解的5个测试框架
  4. Activity随笔
  5. 关于C++中的继承感悟
  6. paip.验证码识别---除噪算法-中值滤波
  7. 查找单词个数案列实现(字符串流)
  8. 编译原理 编译器自动生成工具
  9. ENSP教程---配置DHCP
  10. [写轮眼]QQ服务调校
  11. 2010QQ游戏登录器(分析+感叹)
  12. 后台提示登录失败----YYC松鼠短视频开源
  13. 我心有猛虎,细嗅着蔷薇
  14. Milvus以图搜图环境搭建
  15. linux qt3编译出错,编译ARM 平台的qt4.7.3 遇到的一些问题总结
  16. Vue-GoogleMap (一)实时定位
  17. 王权理财:鹰派寒气逼人金价开启跌势,天然气跌势暂缓有望反弹拉升
  18. 深度学习的工作原理学习方式
  19. Berkeley DB之JE入门
  20. 单片机+DHT11的温湿度采集监测系统,LCD1602显示,带报警功能,C代码、原理图和Proteus仿真

热门文章

  1. 3G模块在WinCE系统上拨号上网配置过程描述
  2. unity3d 切换网络_【Unity3D入门教程】网络通信
  3. 常用的字符串处理函数
  4. 计算机默认快捷键怎么修改,怎样修改电脑快捷键设置知道的能告诉下吗
  5. Python爬虫入门【3】:美空网数据爬取
  6. 通过用户名密码认证保障 MQTT 接入安全
  7. 未来:一餐肯德基的钱就能买颗钻石
  8. 大学新生考英语和计算机,大学:为什么大一新生考英语四级相对容易?这是我见过最好的答案...
  9. App - Download
  10. 用Python脚本模拟登陆获取地铁一卡通的充值和消费记录