Wannafly挑战赛5 A珂朵莉与宇宙 前缀和+枚举平方数

题目描述

给你一个长为n的序列a,有n*(n+1)/2个子区间,问这些子区间里面和为完全平方数的子区间个数

输入描述:

第一行一个数n
第二行n个数表示序列a

输出描述:

输出一个数表示答案

示例1

输入
6
0 1 0 9 1 0
输出
11

备注:

1 <= n <= 100000
0 <= ai <= 10

思路

用前缀和来求任意字段的和
长度为n的序列a[1],a[2], ….,a[n]
有前缀和prefix_sum[1],prefix_sum[2],….,prefix_sum[n]
若子段a[j],a[j+1],…,a[i] 的和为完全平方数,则prefix_sum[i]-prefix_sum[j] =square*square 。
对每个prefix_sum[i] 枚举square的值,若prefix_sum[i]-square*square是一个prefix_sum,则找到一个满足条件的值。

代码

#include <bits/stdc++.h>
int is_sum[1000005], a[100005];
int n;
int prefix_sum;
long long ans;
int main(){
scanf("%d",&n);
is_sum[0]=1;
for(int i=1;i<=n;++i){
scanf("%d",a+i);
}
for(int i=1;i<=n;++i){
prefix_sum+=a[i];
for(int square=0;square<=1000 && square*square <= prefix_sum;++square)
ans+=is_sum[prefix_sum-square*square];
++is_sum[prefix_sum];
}
printf("%lld\n",ans);
return 0;
}

Wannafly挑战赛5 A珂朵莉与宇宙 前缀和+枚举平方数的更多相关文章

  1. Wannafly挑战赛7 E - 珂朵莉与GCD

    题目描述 给你一个长为n的序列a m次查询 每次查询一个区间的所有子区间的gcd的和mod1e9+7的结果 输入描述: 第一行两个数n,m之后一行n个数表示a之后m行每行两个数l,r表示查询的区间 输 ...

  2. wannalfy 挑战赛7 E 珂朵莉与GCD (离线+线段树/树状数组)

    链接:https://www.nowcoder.com/acm/contest/56/E 时间限制:C/C++ 5秒,其他语言10秒 空间限制:C/C++ 716800K,其他语言1433600K 6 ...

  3. 洛谷AT2342 Train Service Planning(思维,动态规划,珂朵莉树)

    洛谷题目传送门 神仙思维题还是要写点东西才好. 建立数学模型 这种很抽象的东西没有式子描述一下显然是下不了手的. 因为任何位置都以\(k\)为周期,所以我们只用关心一个周期,也就是以下数都在膜\(k\ ...

  4. [转]我的数据结构不可能这么可爱!——珂朵莉树(ODT)详解

    参考资料: Chtholly Tree (珂朵莉树) (应某毒瘤要求,删除链接,需要者自行去Bilibili搜索) 毒瘤数据结构之珂朵莉树 在全是珂学家的珂谷,你却不知道珂朵莉树?来跟诗乃一起学习珂朵 ...

  5. 牛客练习赛7 E 珂朵莉的数列

    珂朵莉的数列 思路: 树状数组+高精度 离散化不知道哪里写错了,一直wa,最后用二分写的离散化 哪位路过大神可以帮我看看原来的那个离散化错在哪里啊 通过代码: import java.math.Big ...

  6. 牛客练习赛9 F - 珂朵莉的约数

    题目描述 珂朵莉给你一个长为n的序列,有m次查询 每次查询给两个数l,r 设s为区间[l,r]内所有数的乘积 求s的约数个数mod 1000000007 输入描述: 第一行两个正整数n,m第二行一个长 ...

  7. 牛客练习赛9 B - 珂朵莉的值域连续段

    题目描述 珂朵莉给你一个有根树,求有多少个子树满足其内部节点编号在值域上连续 一些数在值域上连续的意思即其在值域上构成一个连续的区间 输入描述: 第一行有一个整数n,表示树的节点数.接下来n–1行,每 ...

  8. [洛谷P3987]我永远喜欢珂朵莉~

    [洛谷P3987]我永远喜欢珂朵莉~ 题目大意: 给你\(n(n\le10^5)\)个数\(A_{1\sim n}(A_i\le5\times10^5)\),\(m(m\le5\times10^5)\ ...

  9. 洛谷P4344 [SHOI2015]脑洞治疗仪(珂朵莉树)

    传送门 看到区间推倒……推平就想到珂朵莉树 挖脑洞直接assign,填坑先数一遍再assign再暴力填,数数的话暴力数 //minamoto #include<iostream> #inc ...

随机推荐

  1. sqlserver 存储过程调Api接口

    --开启Sql Server 通讯配置-- sp_configure ; GO RECONFIGURE; GO sp_configure ; GO RECONFIGURE; GO EXEC sp_co ...

  2. SpringBoot+Neo4j在社交电商中,讲述你是怎么被绑定为下线的

    上两篇文章我们主要讲解了Neo4j的基本知识以及Neo4j的基本使用,这篇文章我们就以实例来深入的理解一下,我们以社交电商中的绑定关系为例,使用SpringBoot+Neo4j来实现. Neo4j文章 ...

  3. 第一篇:python中的判断语句和循环

    python与C语言的代码格式区别: 需注意:1.python中语句结束没有分号 “;” 2.python中严格要求缩进,且在判断和循环等语句中把括号用冒号代替. 3.经常使用tab键进行缩进. 4. ...

  4. bfs + 路径输出

    You are given two pots, having the volume of A and B liters respectively. The following operations c ...

  5. kaggle预测房价的代码步骤

    # -*- coding: utf-8 -*- """ Created on Sat Oct 20 14:03:05 2018 @author: 12958 " ...

  6. pycharm 安装vue

    1.设置JS为ES6 2.安装vue.js 3.重启pycharm 4.检查

  7. ElasticSearch 倒排索引简析

    内容概要 倒排索引是什么?为什么需要倒排索引? 倒排索引是怎么工作的? 1. 倒排索引是什么? 假设有一个交友网站,信息表如下: 美女1:"我要找在上海做 PHP 的哥哥." 需要 ...

  8. cocos2dx,Layer锚点与scale缩放

    最近写代码需要用到缩放,而且是Layer的,但是发现怎么设置位置都是错误,于是决定研究下. 首先,基础代码,代码上不错特殊处理,没有锚点设置和缩放 class TestLayer : public L ...

  9. 我的开源权限管理项目BeCore (基于.net core开发)

    首先 谢谢大家还记得我.. 新年快乐 祝大家工作顺利 事事顺心 人见人爱 车见车载 冬不寒 下雨有伞 全身哪都不疼 就是有人疼 ~~ Github地址:https://github.com/baby8 ...

  10. [bzoj1875] [洛谷P2151] [SDOI2009] HH去散步

    Description HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但 是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又 ...