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 ...
随机推荐
- [ARC107D] Number of Multisets题解
很显然的动态规划. 令 $f_{i,j}$ 为 $n=i$,$k=j$ 时满足题意的集合数. 依题意可得:一个集合可以只由另一个集合添加元素或将所有元素除二得到. 初始:$f_{0,0}=1$. 目标 ...
- 【报错解决】【Vue】与后端交互时,http与https跨域问题
问题 xhr.js:220 Mixed Content: The page at 'https://xxx' was loaded over HTTPS, but requested an insec ...
- Go语言实现国密证书加密与解析技术详解
Go语言实现国密证书加密与解析技术详解 前言 在当今数字化时代,信息安全成为企业和个人关注的焦点.国密算法作为中国自主研发的加密标准,广泛应用于各类安全场景.Go语言以其简洁.高效的特性,成为众多开发 ...
- archlinux 显卡驱动
https://arch.icekylin.online/guide/rookie/graphic-driver.html archlinux 显卡驱动# 接天莲叶无穷碧,映日荷花别样红# 近年来,a ...
- Docker OCI runtime exec failed: exec failed: container_linux.go:344: starting container process caus
docker执行命令:docker exec -it 1e33b26152e1 /bin/bash 在进入容器报错:OCI runtime exec failed: exec failed: cont ...
- TheScope, Visibility and Lifetime of Variables
C language-- TheScope, Visibility and Lifetime of Variables 全局变量 普通全局变量 //file1 #include<stdio.h& ...
- Qt编写可视化大屏电子看板系统29-模块7品质管理
一.前言 品质管理模块是在送检合格模块的基础上增加了统计而来,总共包括了三个子模块:品质占比.班组合格率.每日合格率统计,其中品质占比子模块采用饼图控件显示对应的百分比,不同百分比颜色不一样,这个饼图 ...
- 即时通讯技术文集(第34期):IM群聊技术合集(Part1) [共15篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第34 期. [- 1 -] 快速裂变:见证微信强大后台架构从0到1的演进历程(一) [链接] ...
- LOL(英雄联盟) API 接口
/*LOL(英雄联盟) API 接口 By wgscd /*LOL(英雄联盟) API 接口 By wgscd QQ:1009374598 */ GET https://127.0.0.1:58182 ...
- TbSchedule任务调度管理框架的整合部署
一.前言 任务调度管理作为基础架构通常会出现于我们的业务系统中,目的是让各种任务能够按计划有序执行.比如定时给用户发送邮件.将数据表中的数据同步到另一个数据表都是一个任务,这些相对耗时的操作通过任务调 ...