ABC393E题解
大概评级:绿。
拿到题目,寻找突破口,发现 \(A_i \le 10^6\),一般的数据都是 \(A_i \le 10^9\),所以必有蹊跷。
数学,权值,最大公约数,联想到了因子……懂了,原来是这么做!
首先一个数 \(x\) 如果能做最大公约数,那么 \(A_i\) 一定是 \(x\) 的倍数,并且总共有至少 \(K\) 个数是 \(x\) 的倍数(包含 \(A_i\)),那么我们肯定是需要一个数组来处理对于一个数在 \(A\) 中有多少个数是它的倍数,但根据我们的直觉,在这个数组之前应该还需要设置一个数组处理对于一个数它在 \(A\) 中出现了多少次,我们设处理对于一个数它在 \(A\) 中出现了多少次的数组为 \(num\),处理对于一个数在 \(A\) 中有多少个数是它的倍数的数组为 \(s\),那么显然 \(f_d = \sum_{d|n} s_n\),于是直接使用类似埃氏筛法的东西求出 \(f\) 数组,如果设 \(M = \max_{i = 1}^n A_i\),那么求出 \(f\) 数组的时间复杂度为 \(O(M \log M)\),求出 \(s\) 数组就不用说了,\(O(N)\) 地一边读入一边统计就行了,最后有了 \(f\) 数组的辅助,是很好求出答案的,我们设 \(A_i\) 的答案为 \(ans_i\),\(ans_i = \max_{d|n,t_d \ge K}d\),很好理解吧,于是我们发现这玩意也可以使用一种类似埃氏筛的方法求,于是这道题就结束了。
总时间复杂度:\(O(N+M \log M+M \log M+N) = O(N+M \log M)\)。
代码:
#include<bits/stdc++.h>
using namespace std;
const int N = 1.2e6+5;
int num[N],t[N],ans[N],a[N];
int main()
{
int n,k;
scanf("%d %d",&n,&k);
int maxx = 0;
for(int i = 1;i<=n;i++)
{
scanf("%d",&a[i]);
maxx = max(maxx,a[i]);
num[a[i]]++;
}
for(int i = 1;i<=maxx;i++)
{
for(int j = i;j<=maxx;j+=i)
{
t[i]+=num[j];
}
}
for(int i = 1;i<=maxx;i++)
{
if(t[i]<k)
{
continue;
}
for(int j = i;j<=maxx;j+=i)
{
ans[j] = max(ans[j],i);
}
}
for(int i = 1;i<=n;i++)
{
printf("%d\n",ans[a[i]]);
}
return 0;
}
ABC393E题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
- JSOI2016R3 瞎BB题解
题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...
随机推荐
- GraphQL Part I: hello, world.
GraphQL with ASP.NET Core (Part- I : Hello World) 厌倦了 REST? 让我们谈一下 GraphQL, GraphQL 提供声明式的方式从服务器获取数据 ...
- blender low poly + unity 3d游戏制作
会是一个有趣的方向,适合独立游戏制作人,独立动画电影制作人.
- 从英库(Engkoo)输入法吐槽
今天整理文件的时候发现在 OneDrive 的根目录还有一个 EngkooPinyin 的文件夹,看配置文件更新已经是 2014 年 3 月了.当时微软出这个输入法的时候,感觉非常好用,然后满怀热情给 ...
- 【转载】 进行API开发选gRPC还是HTTP APIs
https://www.cnblogs.com/yilezhu/p/10645804.html 开始之前先看一下gRPC与带有j'son的HTTP APIs对比表格 gRPC的优势 性能 gRPC消息 ...
- Qt音视频开发42-人脸识别客户端
一.前言 人脸识别客户端程序,不需要和人脸识别相关的库在一起,而是通过协议通信来和人脸识别服务端通信交互,人脸识别客户端和服务端程序框架,主要是为了提供一套通用的框架,按照定好的协议,实现人脸识别的相 ...
- MySQL版本是8.0.3,数据库连接字符串都检查无误,驱动类名加不加cj都试过了,URL是否加时区、是否加useSSL都试过了,都无法正常登录进去!
我在运行library这个web程序登录时(我的MySQL版本是8.0.3,数据库连接字符串都检查无误,驱动类名加不加cj都试过了,URL是否加时区.是否加useSSL都试过了,都无法正常登录进去!) ...
- 跟着源码学IM(九):基于Netty实现一套分布式IM系统
本文作者小傅哥,原题"使用DDD+Netty,开发一个分布式IM(即时通信)系统".为了提升阅读体验,有大量修订和改动,感谢原作者. 0.系列文章 <跟着源码学IM(一):手 ...
- 基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v5.0版已发布
关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持UDP .TCP .WebSocket 三种协议,支持iOS.A ...
- VueH5页面中input控件placeholder提示字默认颜色修改与禁用时默认字体颜色修改
一.默认提示字颜色修改 不同浏览器的设置略有区别 以下是只选择name为color的input进行修改 //chrome谷歌浏览器,Safari苹果浏览器 input[name="color ...
- Index - 此处的诗
虚构往事 正篇 嗯--本来发过两篇,但深愧于仓促的处理和并未完善的细节设定,隐藏了. 大概会是一个中篇的科幻故事,世界设定已经完善了(Shaya 可以作证!),但近期可能没有精力动笔. 番外 ...