题解: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 & ...
随机推荐
- el-table 宽度自适应bug
和 flex 一起使用的时候会有这个问题.只能自动变宽不能自动变窄. 在 flex-grow:1; 的那一层设置 overflow: auto;
- ftrace的trace_options
ftrace 中的 trace_options 选项用于控制追踪数据的收集和显示方式.你可以通过 /sys/kernel/debug/tracing/trace_options 文件来设置这些选项.每 ...
- icache的dcache区别
iCache是指指令缓存,DCache是指数据缓存.iCache是专门用于存储指令的高速缓存,DCache是用于存储数据的高速缓存.iCache用于存储指令,在CPU执行时将指令从iCache中读取, ...
- 墨天轮国产数据库沙龙 | 张玮绚:TDengine,高性能、分布式、支持SQL的时序数据库
分享嘉宾:张玮绚(Wade Zhang)北京涛思数据科技有限公司(TDengine)研发VP 整理:墨天轮 导读 TDengine 是一款高性能.分布式.支持 SQL 的时序数据库,让大量设备.数据采 ...
- 云原生周刊:Score 成为 CNCF 沙箱项目|2024.7.15
开源项目 Trident Trident 是由 NetApp 维护的全面支持的开源项目.它从头开始设计,旨在通过行业标准接口(如容器存储接口 CSI)帮助您满足容器化应用程序对持久性存储的需求. Mo ...
- T3 出行云原生容器化平台实践
公司简介 T3 出行是南京领行科技股份有限公司打造的智慧出行生态平台,由中国第一汽车集团有限公司.东风汽车集团有限公司.重庆长安汽车股份有限公司发起,联合腾讯.阿里巴巴等互联网企业共同投资打造.公司以 ...
- 配置与美化Linux桌面
本文讲述安装了Kali Linux 2024.3,Gnome桌面,以及安装各种应用与美化的过程. 安装操作系统 网络上下载操作系统镜像,写入u盘,制作启动盘 https://mirrors.tuna. ...
- JetBrains IDEs 软件全破解
JetBrains IDE相关产品是一系列专为不同编程语言和平台设计的智能开发工具,它们可以帮助开发者提高效率,编写高质量的代码,和享受编程的乐趣.为当世最有影响力的IDE之一. JB 软件分为都分为 ...
- 学习JavaScript第一天
文章目录 1.JavaScript简介 2.JavaScript编写的位置 2.1.内部JavaScript 2.2外部JavaScript 2.3内联JavaScript 3.JavaScript注 ...
- Antlr4 语法解析器(下)
Antlr4 的两种AST遍历方式:Visitor方式 和 Listener方式. Antlr4规则文法: 注释:和Java的注释完全一致,也可参考C的注释,只是增加了JavaDoc类型的注释: 标志 ...