Luogu1574 超级数

\(n\) 次询问不超过 \(a_i\) 的最大反素数

\(n\leq10^5,\ a_i\leq10^{17}\)

数论


似乎重题 bzoj1053 [HAOI2007]反素数ant ?然而跑不过此题

首先发现 \(10^{17}\) 以内的反素数数量很少,可以直接打表解决……

然而有更优美的解法

由于数量少,显然有很多反素数是被重复计算了的

考虑继承,从大往小跑,如果上一个答案小于当前询问,当前询问的答案即为上一个答案

这种方法跑的很快,因为最多只会算遍所有反素数

代码

#include <bits/stdc++.h>
using namespace std; typedef long long ll;
const int maxn = 1e5 + 10;
const int p[] = {0, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47};
int n, tid[maxn];
ll now, res, val, Q[maxn], ans[maxn]; void dfs(int pos, ll sum, ll tot, int lst) {
for (ll i = 0, t = sum; i <= lst; i++, t *= p[pos]) {
if (pos < 16) dfs(pos + 1, t, tot * (i + 1), i);
if ((res >= t && val <= tot) || (res < t && val < tot)) {
res = t, val = tot;
}
if (t * p[pos] > now) break;
}
} int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%lld", Q + i), tid[i] = i;
}
sort(tid + 1, tid + n + 1, [](int x, int y) {
return Q[x] > Q[y];
});
for (int i = 1; i <= n; i++) {
if (i > 1 && ans[tid[i - 1]] < Q[tid[i]]) {
ans[tid[i]] = ans[tid[i - 1]];
} else {
res = val = 1;
now = Q[tid[i]];
dfs(1, 1, 1, 1000);
ans[tid[i]] = res;
}
}
for (int i = 1; i <= n; i++) {
printf("%lld\n", ans[i]);
}
return 0;
}

Luogu1574 超级数的更多相关文章

  1. UVa 10624 - Super Number

    题目大意 给定两个数n和m,如果长度为m的数满足对于每个i(n<=i<=m),数字的前i位都能被i整除,那么这个数就是超级数,求出字典序最小的符合要求的超级数. 分析 直接暴力搜索 #in ...

  2. [kuangbin带你飞]专题十四 数论基础

            ID Origin Title   111 / 423 Problem A LightOJ 1370 Bi-shoe and Phi-shoe   21 / 74 Problem B ...

  3. UVA11752 The Super Powers —— 数论、枚举技巧

    题目链接:https://vjudge.net/problem/UVA-11752 题意: 一个超级数是能够至少能表示为两个数的幂,求1~2^64-1内的超级数. 题解: 1.可知对于 n = a^b ...

  4. MySQL使用pt-online-change-schema工具在线修改1.6亿级数据表结构

    摘  要:本文阐述了MySQL DDL 的问题现状.pt-online-schema-change的工作原理,并实际利用pt-online-schema-change工具在线修改生产环境下1.6亿级数 ...

  5. 精选10款超酷的HTML5/CSS3菜单

    今天向大家精选了10款超酷的HTML5/CSS3菜单,给你的网页添加不一样的精彩,一起来围观一下吧. 1.CSS3手风琴菜单 下拉展开带弹性动画 利用CSS3技术可以实现各种各样的网页菜单,我们之前也 ...

  6. 不停机不停服务,MYSQL可以这样修改亿级数据表结构

    摘  要:本文阐述了MySQL DDL 的问题现状.pt-online-schema-change的工作原理,并实际利用pt-online-schema-change工具在线修改生产环境下1.6亿级数 ...

  7. 完全用nosql轻松打造千万级数据量的微博系统(转)

    原文:http://www.cnblogs.com/imxiu/p/3505213.html 其实微博是一个结构相对简单,但数据量却是很庞大的一种产品.标题所说的是千万级数据量 也并不是一千万条微博信 ...

  8. 完全用nosql轻松打造千万级数据量的微博系统

    其实微博是一个结构相对简单,但数据量却是很庞大的一种产品.标题所说的是千万级数据量也并不是一千万条微博信息而已,而是千万级订阅关系之间发布.在看 我这篇文章之前,大多数人都看过sina的杨卫华大牛的微 ...

  9. 字节跳动基于Apache Hudi构建EB级数据湖实践

    来自字节跳动的管梓越同学一篇关于Apache Hudi在字节跳动推荐系统中EB级数据量实践的分享. 接下来将分为场景需求.设计选型.功能支持.性能调优.未来展望五部分介绍Hudi在字节跳动推荐系统中的 ...

随机推荐

  1. SpringBoot2.0之七 实现页面和后台代码的热部署

    开发过程中我可能经常会因为修改一点点代码就需要重启项目而烦恼,这样不仅很繁琐,还会因为不断重启浪费大量的时间,无法提高工作效率.可是现在SpringBoot为我们提供了非常简单的方式让我们实现热部署. ...

  2. Luogu P5292 [HNOI2019]校园旅行

    非常妙的一道思博题啊,不愧是myy出的题 首先我们考虑一个暴力DP,直接开一个数组\(f_{i,j}\)表示\(i\to j\)的路径能否构成回文串 考虑直接拿一个队列来转移,队列里存的都是\(f_{ ...

  3. JAVAFX之tableview界面实时刷新导致的内存溢出(自己挖的坑,爬着也要出来啊0.0)

    这几天遇到了一个问题,不幸开发的一个cs架构的工具,客户端开启后,内存一直在缓慢增长最终导致进程卡死,花了4天时间,终于爬出来了... 客户端通过timer定时器每30秒查询一次数据库以及一些业务逻辑 ...

  4. PMBook - 6.项目进度管理

      6.3 排列活动顺序 6.3.1 排列活动顺序:输入 6.3.1.1 项目管理计划 6.3.1.2 项目文件 6.3.1.3 事业环境因素 6.3.1.4 组织过程资产 6.3.2 排列活动顺序: ...

  5. Locust性能测试学习总结

    Locust学习总结分享 简介: Locust是一个用于可扩展的,分布式的,性能测试的,开源的,用Python编写框架/工具,它非常容易使用,也非常好学.它的主要思想就是模拟一群用户将访问你的网站.每 ...

  6. .netcore 模块积累

    最全的 demo https://github.com/XiaoFaye/netcore-samples http://files.cnblogs.com/files/kellynic/practic ...

  7. 使用 ASP.NET Core MVC 创建 Web API(三)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 十 ...

  8. python3爬取网页图片路径并写入文件

    import reimport urllib.request # 获取网页文件def getHtml(url): response = urllib.request.urlopen('https:// ...

  9. Linux系统上安装MySQL(rpm)

    1.准备工作 从MySQL官网上分别下载mysql服务器端于客户端包. 如: MySQL-server-5.5.15-1.linux2.6.x86_64.rpm和MySQL-client-5.5.15 ...

  10. python 面试题

    1.os.path与sys.path的区别是什么? os.path 主要用于系统文件路径的操作 sys.path 主要是python解释器的系统环境参数的操作 2.re模块中match和search方 ...