序列区间

题目大意

给你n个数,问你有多少个区间满足∏i=lrai∑i=lrai=k\frac{\prod_{i=l}^r a_i}{\sum_{i=l}^r a_i}=ki=lraii=lrai=k


解题思路

原始等同于∏i=lrai=k⋅∑i=lrai\prod_{i=l}^r a_i=k\cdot\sum_{i=l}^r a_ii=lrai=ki=lrai

先枚举起点,然后向后计算

对于ai≥2a_i\geq 2ai2,最多乘log(k∑ai)log(k\sum a_i)log(kai)
对于ai=1a_i=1ai=1,左边的项不会变,只有右边会+1,所以连续的一段1可以直接一次性解决

时间复杂度O(nlog(k∑ai))O(nlog(k\sum a_i))O(nlog(kai))


code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 200210
using namespace std;
ll n,k,x,y,mx,now,ans,a[N],nx[N];
int main()
{scanf("%lld%lld",&n,&k);for(ll i=1;i<=n;++i){scanf("%lld",&a[i]);mx+=a[i]*k;}a[n+1]=1;now=0;for(ll i=n;i>0;--i){nx[i]=now;if(a[i]==1)now++;//处理后面1的个数else now=0;}for(ll i=1;i<=n;++i){now=i;x=1;y=0;while(now<=n&&y<=mx-a[now]*k&&x<=mx/a[now]){x*=a[now];y+=a[now]*k;if(x==y)ans++;//直接构成if(x>y&&x<=y+nx[now]*k&&x%k==0)ans++;//后面的1y+=nx[now]*k;now+=nx[now]+1;}}printf("%lld",ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

github开源项目免费使用Azure PipeLine

微软收购Github后,很多人猜想微软可能会砍掉VSTS,然而事实VSTS并没有砍掉,关于Azure Devops的详细信息可以查看 这篇博客,如果想查看原文也可以从链接里提供的原始地址里查看.今天要介绍的是做Azure devops的ci部分:Azure Pipeline. VSTS升级到Azure Devops之后对开源开发者带来…

YbtOJ#752-最优分组【笛卡尔树,线段树】

正题 题目链接:http://www.ybtoj.com.cn/problem/752 题目大意 nnn个人&#xff0c;每个人有cic_ici​和did_idi​分别表示这个人所在的队伍的最少/最多人数。 然后要求将这些人分成编号连续的若干队使得队伍最多&#xff0c;并且求分队方案数。 1≤n≤1061\leq n\leq 10^61≤…

牛客小白月赛 27部分题解

已做BCDEFGJ B.乐团派对 刚开始想了个贪心&#xff0c;结果不对然后直接转头想dp了。 将能力值排序。 首先我们先分出来一组&#xff0c;能力值最大的分出来一组人数是ana_nan​即下标是n−an1→nn-a_n1\to nn−an​1→n分出来一组&#xff0c;目前还剩n−ann-a_nn−an​个人…

如何向微软 Docs 和本地化社区提交翻译贡献

Docs &#xff08;docs.microsoft.com&#xff09;是微软新版的文档网站&#xff0c;重新规划了各项技术栈的文档结构&#xff0c;看起来比 MSDN 可读性更好。虽然 Docs 提供了各种语言的版本&#xff0c;但大多是机器翻译&#xff0c;某些中文文档基本读不下去。因此微软鼓励社…

【线段树】生日

题目大意 给你一个序列&#xff0c;让你进行以下操作&#xff1a; 修改一个区间的数查询区间不同数字个数 解题思路 因为数字个数很少&#xff0c;可以直接用bitset存&#xff0c;然后套线段树 code #include<bitset> #include<cstdio> #include<cstring>…

ICPC 2019-2020 North-Western Russia Regional Contest 补题部分

已做A、M&#xff0c;E和H思路已经有了没调AC 已补BEJH 最终已完成ABEJHM B - Bad Treap 大佬题解 感觉这题就很玄学。。。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<c…

【dfs】数字

题目大意 给出x&#xff0c;问你不小于x&#xff0c;且由相同个数的4和7组成的最小的数 解题思路 对于奇数位和大于当前位数最大数的直接特判掉 对于其他的dfs枚举&#xff0c;因为如果一个位置放得比原数大&#xff0c;那么后面的都确定了&#xff0c;所以是O(n)的 code #…

【dfs】飞行棋

题目大意 给你一个n*m的网格&#xff0c;现在让你往里面填1~k&#xff08;有的位置已经填了&#xff09;&#xff0c;使其满足所有从(1,1)到(n,m)的路径不会经过相同的数字&#xff08;只能往下或往右&#xff09;&#xff0c;求方案数 解题思路 对于k<nm-1的&#xff0c;…

API测试工具SoapUI Postman对比分析

最近公司要引入API测试工具&#xff0c;经过调查和了解&#xff0c;最终决定在SoapUI 和 Postman两种工具之间做一个选择&#xff0c;两种工具在业界都很有名&#xff0c;相信很多人两种工具也都曾使用过。SoapUISoapUI是一个开源测试工具&#xff0c;通过soap/http来检查、调用…

[POI2008]STA-Station

之前都看过有换根dp&#xff0c;一直不知道是啥意思&#xff0c;本来弱弱树形dp都不太熟悉&#xff0c;不过今天工数课的时候突然想看一下&#xff0c;写个板子题练练吧。 对于我的理解&#xff0c;换根的题目一般是根不确定&#xff0c;而求得答案与根是谁有关&#xff0c;而…

Reports

试题hduoj 题意&#xff1a; 如果相邻的任意两个数相同的话&#xff0c;则输出NO&#xff0c;反之输出YES。 题解&#xff1a; 水题 我队友做的 代码&#xff1a; #include<bits/stdc.h> #define inf 1<<30 #define maxn 200000 using namespace std; int k…

【结论】分肉

题目大意 有两个数x,y&#xff0c;一轮中&#xff0c;如果x≤yx\leq yx≤y&#xff0c;那么xx,y-x&#xff0c;否则x-y,yy&#xff0c;回答经过k轮后较小的数 解题思路 可以发现xy是保持不变的&#xff0c;且x−yx2−x−y,x2>xy(x>y)x-yx\times 2-x-y,x\times 2>xy(…

在 Windows 上可以用 Docker 吗?| 洞见

简介Docker&#xff0c;或者准确一点说&#xff0c;容器技术&#xff0c;在近几年里几乎成为了应用分发和集群部署的默认技术了。背景部分&#xff0c;如果感兴趣&#xff0c;请参考闲谈集群管理模式一文。Docker 生态的成熟还有赖于其周边工具和实践模式的兴起。比如&#xff…

泰勒及洛朗展开学习笔记

2020-1024996 最近太忙了&#xff0c;今天好像没有写题&#xff0c;不过研究了一下数学hh。 2020.10.24今天又有工数课&#xff0c;我又没听&#xff0c;我记得上节工数课我看了换根dp&#xff0c;哦&#xff1f;好吧我没听过工数&#xff0c;那没事了&#xff0c;不过这次不敢…

【结论】串串串(nowcoder 20107-A)

正题 nowcoder 20107-A 题目大意 给你两个01串&#xff0c;有若干询问&#xff0c;每次询问两段长度相等的字串不同位数的奇偶性 解题思路 因为只用判断奇偶性&#xff0c;所以同时修改两个字符是不会改变结果的&#xff0c;那么可以直接将字串修改为只有0/1个1的串&#xf…

SmartSql For Asp.Net Core 最佳实践

常规操作安装 SmartSqlInstall-Package SmartSql安装 SmartSql.DIExtensionInstall-Package SmartSql.DIExtension配置SmartSqlConfig.xml写库&#xff08;Write&#xff09;必选 唯一节点读库&#xff08;Read&#xff09;可选 多节点配置PostgresqlPostgresql 客户端 NpgsqlI…

矩阵乘法学习记录

这要从校赛的一个区间与非操作题说起&#xff0c;群里大佬用的ddp思想使其满足结合律&#xff0c;但是我连矩阵乘法都不会于是从头开始学习矩阵乘法。 P3390 【模板】矩阵快速幂 和快速幂一模一样&#xff0c;只是把数乘换成矩阵乘&#xff0c;只需要定义结构体矩阵然后重载一…

51nod1600-Simple KMP【SAM,树链剖分】

正题 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId1600 题目大意 给出一个字符串sss&#xff0c;每次在最后插入一个字符后求它的所有分别子串构出的failfailfail树的深度和。 1≤Q≤1051\leq Q\leq 10^51≤Q≤105 解题思路 考虑两个相等的子串长度为le…

课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018

微软技术暨生态大会&#xff08;Tech Summit&#xff09;&#xff0c;2018 年在上海世博中心召开。这是最后一次的 Tech Summit 了&#xff1b;明年开始&#xff0c;中国大陆地区就要和其他国家和地区一样&#xff0c;进行全球 Ignite Tour 了。我也有幸成为分会场讲师团队的一…

【DP】方格计数(nowcoder 20107-B)

正题 nowcoder 20107-B 题目大意 在一个H*W的平面上&#xff0c;选择N个点&#xff08;坐标为非负整数&#xff09;&#xff0c;使得每个点之间的距离大于D&#xff0c;问你有多少种方案 解题思路 设fi,j,kf_{i,j,k}fi,j,k​为有i个格子&#xff0c;选择k个格子&#xff0c;…