D. Not Adding
传送门: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相关推荐
- android.util.AndroidRuntimeException: requestFeature() must be called before adding content
问题 Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding co ...
- R语言ggplot2可视化、在可视化区域中自定义添加多个大小不同矩形阴影区域、自定义配置大小不同矩形阴影区域的颜色(Adding multiple shadows/rectangles)
R语言ggplot2可视化.在可视化区域中自定义添加多个大小不同矩形阴影区域.自定义配置大小不同矩形阴影区域的颜色(Adding multiple shadows/rectangles) 目录
- R语言在可视化图像中添加文本(Adding Text to plot)
R语言在可视化图像中添加文本(Adding Text to plot) 创建一个好的可视化包括引导读者,使用图形讲述一个直观的故事.在某些情况下,这个故事可以以完全直观生动的方式呈现,而不需要添加文本 ...
- SAP WM中阶之存储类型上架策略I(Adding to existing stock)
SAP WM中阶之存储类型上架策略I(Adding to existing stock) SAP WM模块里,有很多上架策略.Adding to existing stock是一种常用的上架策略.这种 ...
- WorkFlow入门Step.4—Adding Procedural Elements-For-WF4.0-(续)
开篇 上篇,我们简单的说明了WF的入门,那么院子里面已经有很多的高手,写了不少的关于工作流的应用,最近在集成工作流平台的过程中也是发现了不少的问题和心得体会,工作流果真不只是审批那么简单,复杂度可见非 ...
- 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 ...
- 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 ...
- 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 ...
- [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 ...
- Android开发指南(42) —— Adding Custom Suggestions
前言 本章内容为 Android开发者指南的 Framework Topics/Search/Adding Custom Suggestions章节,译为"添加自定义建议项",版本 ...
最新文章
- 面向对象(继承,多态)
- 想快速拥有个人网站?来试试这个...
- 关于Android的自动化测试,你需要了解的5个测试框架
- Activity随笔
- 关于C++中的继承感悟
- paip.验证码识别---除噪算法-中值滤波
- 查找单词个数案列实现(字符串流)
- 编译原理 编译器自动生成工具
- ENSP教程---配置DHCP
- [写轮眼]QQ服务调校
- 2010QQ游戏登录器(分析+感叹)
- 后台提示登录失败----YYC松鼠短视频开源
- 我心有猛虎,细嗅着蔷薇
- Milvus以图搜图环境搭建
- linux qt3编译出错,编译ARM 平台的qt4.7.3 遇到的一些问题总结
- Vue-GoogleMap (一)实时定位
- 王权理财:鹰派寒气逼人金价开启跌势,天然气跌势暂缓有望反弹拉升
- 深度学习的工作原理学习方式
- Berkeley DB之JE入门
- 单片机+DHT11的温湿度采集监测系统,LCD1602显示,带报警功能,C代码、原理图和Proteus仿真