[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 ...
随机推荐
- Visual Studio Docker调试端口设置
一.前言 在Visual Studio 调试程序时,Docker中的容器端口和主机端口映射随机生成,导致每次调试都需要修改前端API接口的地址 二.解决方案 1.修改Docker调试启动参数,找到启动 ...
- Spatial Statistics Tools(空间统计工具)
空间统计工具 1.分析模式 # Process: 增量空间自相关 arcpy.IncrementalSpatialAutocorrelation_stats("", "& ...
- NOIP模拟76
前言 还有不到 10 天就要 CSP-S ...马上我就要有我的第一篇游记了. 今天考试莽了一回,整了大概 2.5h 的 T1 ,可能是因为今天题目比较难,看起来成效不错. 以后还是要注意时间的分配( ...
- pymysql基础
一,基本使用 倒入模块 import pymysql conn=pymysql.connect( host="数据库地址,本机是localhost,别的机器是ip", user=& ...
- Java语言程序设计与数据结构(基础篇)第七章答案
答案为本人求解,如有错误,还望海涵.如有雷同,纯属巧合. 7.1 import java.util.Scanner; public class Main { public static void ma ...
- SQL Server 数据库单用户模式处理
在还原数据库bak备份文件时,由于某种原因(具体何种原因在此不进行分析)导致数据库还原后处于单用户模式,如下图: 单个用户模式导致,数据库无法打开,只能通过脚本去查询数据库内的表,然后进行查询数据,极 ...
- 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.48 发布
Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 增加 solon.serialization,做为序列化的基础插件 优化 所有Json序列化插件,使之可方便定制类型序列化 public ...
- NX屏蔽窗口的按钮
有时候在激活一个命令按钮的时候,需要同时禁止掉另外一个或多个命令按钮 ''' <summary> ''' 取按钮是否敏感 ''' </summary> ''' <para ...
- PostMan生成的测试报告 工具node.js、步骤、结果
Postman生成测试报告的工具node.js 1.下载并安装: win系统(下载后一直下一步就好了) mac系统 2.配置环境 (1).在命令提示符里面输入npm 检验安装是否成功可以输入命令:n ...
- 笨方法学python中执行argv提示ValueError: not enough values to unpack (expected 4, got 1)
解决方法:选择Terminal中输入执行ex13.py 1 2 3 执行结果如下图