题解:P10704 救赎(Redemption)
数论题,先看数据范围,发现 $n$ 和 $m$ 都非常大,但是 $\sum_{i=1}^{i=n}a_i \le 10^9$。
解以上不等式得不同的 $a_i$ 大约有 $40000$ 个。记有 $cnt$ 个不同的 $a_i$,所以显然有一种 $O(k^2)$ 的做法。
期望得分:$70$ 分。
考虑优化,设去重后数组为 $w$,观察数据可得不同的 $a_i \times a_j$ 有可能再向下取整后变成一样的值。
先将 $w$ 排序,对于每个 $w_i$,首先确定
$\lfloor \frac{m}{w_iw_j} \rfloor$ 相同时 $j$ 的取值范围。观察发现,$\lfloor \frac{m}{w_iw_j} \rfloor$ 相同时 $j$ 是连续的。所以考虑二分求得左右边界,通过前缀和维护这段区间内的数的总个数,可求得该段的贡献。
题目背景好评
Code:
signed main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
{
if(a[i]!=a[i-1])
{
b[++cnt1]=a[i];
cnt[cnt1]=1;
}
else
{
cnt[cnt1]++;
}
}
for(int i=1;i<=cnt1;i++)
{
sum1[i]=sum1[i-1]+cnt[i];
}
int now=0;
int l3=0,r3=0;
for(int i=1;i<=cnt1;i++)
{
sum=(sum+1ll*(m/(b[i]*b[i]))*cnt[i]%mod*cnt[i])%mod;
if(i==cnt1)
{
continue;
}
l3=i+1;
now=(m/(b[i]*b[l3]));
while(l3<=cnt1)
{
r3=check(i,now,l3);
ret=(ret+now*cnt[i]%mod*(sum1[r3]-sum1[l3-1]))%mod;
l3=r3+1;
if(l3>cnt1)
{
break;
}
now=m/(b[i]*b[l3]);
}
}
cout<<(ret*2+sum)%mod;
return 0;
}
题解:P10704 救赎(Redemption)的更多相关文章
- 英语影视台词---八、the shawshank redemption
英语影视台词---八.the shawshank redemption 一.总结 一句话总结:肖申克的救赎 1.It's funny. On the outside, I was an honest ...
- 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 & ...
随机推荐
- 前端使用 Konva 实现可视化设计器(23)- 绘制曲线、属性面板
本章分享一下如何使用 Konva 绘制基础图形:曲线,以及属性面板的基本实现思路,希望大家继续关注和支持哈(多求 5 个 Stars 谢谢)! 请大家动动小手,给我一个免费的 Star 吧~ 大家如果 ...
- 图片 电力电网行业IT运维方案
智能电网背景下,电力.电网企业信息化逐渐渗透到其业务链的各个环节,云计算.物联网.移动互联网等新技术的应用,更驱动信息化与业务创新深度融合.电力.电网企业集团信息系统群逐渐朝着一体化方向发展,信息链越 ...
- Linux系统启动速度优化工具systemd-analyze
systemd-analyze简介 systemd-analyze是Linux自带的分析系统启动性能的工具. systemd-analyze可使用的命令: systemd-analyze [OPTIO ...
- BPF BTF 详解
1. 介绍 BTF(BPF Type Format)是内嵌在BPF(Berkeley Packet Filter)程序中的数据结构描述信息.BPF原本是用于数据包过滤的编程语言,但随着eBPF(ext ...
- watch 监视搜索关键词的变化不断发送请求返回建议
watch: { keywords: { // yarn add lodash 下载lodash包 // import { debounce } from "lodash"; 引入 ...
- dockerfile构建docker镜像
1.dockerfile构建nginx镜像,准备nginx.repo文件 [root@localhost dockerfile]# cat nginx.repo [nginx] name = ngin ...
- 018 人生中第一次用 Python 写的一个小程序_猜年龄(再次强调,重视基础)
博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...
- KubeSphere 社区双周报 | OpenFunction v1.0.0-rc.0 发布
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...
- 如何在 ubuntu 上搭建 minio
由于腾讯的对象存储服务器(COS)的半年免费试用期已过,所以寻思鼓捣一下 minio,试着在自己的服务器上搭建一套开源的 minio 对象存储系统. 单机部署基本上有以下两种方式. 直接安装 最基础的 ...
- 2.搭建K8S集群前置知识
搭建K8S集群 搭建k8s环境平台规划 单master集群 单个master节点,然后管理多个node节点 多master集群 多个master节点,管理多个node节点,同时中间多了一个负载均衡的过 ...