[nowcoder5666B]Infinite Tree

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 100005
4 vector<int>v[N];
5 int n,vis[N],sum[N],le[N],ri[N];
6 long long s,ss,ans,a[N];
7 int main(){
8 for(int i=2;i<N-4;i++)
9 if (!vis[i]){
10 sum[i]=1;
11 v[i].push_back(i);
12 for(int j=2;i*j<N-4;j++){
13 vis[i*j]=1;
14 for(int k=j;k%i==0;k/=i){
15 sum[i*j]++;
16 v[i].push_back(i*j);
17 }
18 }
19 }
20 for(int i=2;i<N-4;i++)sum[i]+=sum[i-1];
21 while (scanf("%d",&n)!=EOF){
22 s=ans=0;
23 for(int i=1;i<=n;i++){
24 scanf("%lld",&a[i]);
25 s+=a[i];
26 ans+=a[i]*sum[i];
27 a[i]+=a[i-1];
28 }
29 int l=1,r=ri[n]=n,las=-1;
30 for(int i=n;i>=2;i--){
31 if (vis[i])continue;
32 le[i]=upper_bound(v[i].begin(),v[i].end(),l)-v[i].begin();
33 ans-=s*le[i]-1;
34 if (las>=0)ri[i]=v[las][le[las]]-1;
35 las=i;
36 while (1){
37 ss=2*(a[r]-a[l-1])-2*(a[ri[i]]-a[v[i][le[i]]-1]);
38 if (s-ss<=0)break;
39 s-=ss;
40 l=v[i][++le[i]];
41 r=ri[i];
42 ans-=s;
43 }
44 if (s<=0)break;
45 }
46 printf("%lld\n",ans);
47 }
48 }
[nowcoder5666B]Infinite Tree的更多相关文章
- HDU 5573 Binary Tree 构造
Binary Tree 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5573 Description The Old Frog King lives ...
- Binary Tree(二叉树+思维)
Binary Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Tota ...
- 2015上海赛区B Binary Tree
B - Binary Tree Description The Old Frog King lives on the root of an infinite tree. According to ...
- hdu 5573Binary Tree
Binary Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Tota ...
- hdu-5573 Binary Tree
The Old Frog King lives on the root of an infinite tree. According to the law, each node should conn ...
- Binary Tree 分类: POJ 2015-06-12 20:34 17人阅读 评论(0) 收藏
Binary Tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6355 Accepted: 2922 Descr ...
- Element DOM Tree jQuery plugin – Firebug like functionality | RockingCode
Element DOM Tree jQuery plugin – Firebug like functionality | RockingCode Element DOM Tree jQuery pl ...
- k-d tree算法
k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构.主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索). 应用背景 SIFT算法中做特征点匹配的时候就会利用到k ...
- Distance on the tree
Distance on the tree https://nanti.jisuanke.com/t/38229 DSM(Data Structure Master) once learned abou ...
随机推荐
- nvidia jetson xavier 风扇开机自启动
作者声明 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 原文链接:https://www.cnblogs.com/phoenixash/p/15 ...
- 如何评估 Serverless 服务能力?这份报告给出了 40 条标准
编者按:两年前,我们还在讨论什么是 Serverless,Serverless 如何落地.如今,已经有评测机构给出了 40 条标准来对 Serverless 的服务能力进行评估,这些评估细则既是技术生 ...
- 超详细的Eureka源码解析
Eureka简介 Eureka是什么? Eureka是基于REST(Representational State Transfer)服务,主要以AWS云服务为支撑,提供服务发现并实现负载均衡和故障转移 ...
- 第30篇-main()方法的执行
在第7篇详细介绍过为Java方法创建的栈帧,如下图所示. 调用完generate_fixed_frame()函数后一些寄存器中保存的值如下: rbx:Method* ecx:invocation co ...
- Python设置Excel样式
前面已经详细讲解过使用Python对Excel表格进行读.写操作,本文主要讲解下使用Python设置Excel表格的样式. 深入学习请参考openpyxl官方文档: https://openpyxl. ...
- Linux上传下载神器之 lrzsz
在开发的过程中,经常遇到 需要在 Linux 和 Windows 之间上传下载文件的情况 这时,一般都是使用 FTP 或者 WinSCP 工具进行上传下载, 虽然也能解决问题,但是这些工具需要在本地安 ...
- [对对子队]会议记录4.18(Scrum Meeting9)
今天已完成的工作 何瑞 工作内容:修复了一些关卡1的bug 相关issue:搭建关卡1 相关签入:4.18签入1 4.18签入2 梁河览 工作内容:实现了音量控制,添加了BGM 相 ...
- [BUAA]起点 软工第一次作业-热身
项目 内容 这个作业属于哪个课程 2020计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 第一次作业-热身! 我在这个课程的目标是 了解软件开发,提高自己的工程能力和团队协作能力 这个作业在哪 ...
- BUAA 2020 软件工程 个人博客作业
BUAA 2020 软件工程 个人博客作业 Author: 17373051 郭骏 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 ...
- UVA-1498 Activation
UVA-1498 DP应该是肯定的,设 f [ i ] [ j ] 表示现在对中共有 i 人,Tomato在第 j 个,出现所求情况的概率,我们可以很(简单的)艰难的列出下列方程: f[i][1] = ...