AT2005-[AGC003E]Sequential operations on Sequence【差分,思维】

正题

题目链接:https://www.luogu.com.cn/problem/AT2005


题目大意

开始有一个1∼n1\sim n1n依次排列的序列,然后QQQ次,第iii次把序列长度变为aia_iai,不足的从前往后循环填充。

求最后每个数字的出现次数。

1≤n,q≤105,1≤ai≤10181\leq n,q\leq 10^5,1\leq a_i\leq 10^{18}1n,q105,1ai1018


解题思路

首先肯定是先搞出一个单调栈来,然后考虑每次复制重复的部分。

考虑第iii次,首先是原先的序列重复⌊aiai−1⌋\lfloor\frac{a_i}{a_{i-1}}\rfloorai1ai次,然后后面会剩下ai%ai−1a_i\%a_{i-1}ai%ai1个。

这两个部分其实是可以分开处理的,重复的部分我们维护fif_ifi表示第iii次后的序列重复了多少次。然后对于剩下的那一部分也挺好处理的,假设长度为ccc,那么我们就会一直重复到一个ai≤ca_i\leq caic的位置才会改变,而每次改变又会变成c%aic\%a_ic%ai,所以如果我们二分这个aia_iai的话就能做到O(log⁡2n)O(\log^2n )O(log2n)的了,然后找到c<nc<nc<n的时候就是让1∼c1\sim c1c的次数加上一个值,差分就好了。

时间复杂度:O(nlog⁡2n)O(n\log ^2n)O(nlog2n)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=1e5+10;
ll n,m,q,a[N],b[N],f[N];
void dfs(ll c,ll d){ll x=upper_bound(a+1,a+1+m,c)-a-1;if(!x)b[c]+=d;else f[x]+=c/a[x]*d,dfs(c%a[x],d);return;
}
signed main()
{scanf("%lld%lld",&n,&q);a[++m]=n;while(q--){ll x;scanf("%lld",&x);while(m>0&&x<=a[m])m--;a[++m]=x;}f[m]=1;for(ll i=m;i>=2;i--)f[i-1]+=a[i]/a[i-1]*f[i],dfs(a[i]%a[i-1],f[i]);b[a[1]]+=f[1];for(ll i=n;i>=1;i--)b[i]+=b[i+1];for(ll i=1;i<=n;i++)printf("%lld\n",b[i]);return 0;
}

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

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

相关文章

多项式工业基础与全家桶

多项式工业基础与全家桶 开坑待填&#xff0c;放个常数巨大的板子先 别忘了这道题&#xff01;P3338 [ZJOI2014]力 #define Maxn 200005 #define mod 998244353 inline int ksm(int x,int ymod-2) {int ret1;for(;y;y>>1,x1ll*x*x%mod) if(y&1) ret1ll*ret*x%mod;ret…

【周末狂欢赛7】【NOIP模拟赛】七夕祭,齿轮(dfs),天才黑客

文章目录T1题目题解codeT2题目题解codeT3题目题解codeT1 题目 七夕节因牛郎织女的传说而被扣上了「情人节」的帽子。于是TYVJ今年举办了一次线下七夕祭。Vani同学今年成功邀请到了cl同学陪他来共度七夕&#xff0c;于是他们决定去TYVJ七夕祭游玩。 TYVJ七夕祭和11区的夏祭的…

股票买卖 IV

股票买卖 IV 题意&#xff1a; 给定一个长度为 N 的数组&#xff0c;数组中的第 i 个数字表示一个给定股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润&#xff0c;你最多可以完成 k 笔交易。 注意&#xff1a;你不能同时参与多笔交易&#xff08;你必须在再…

9.25 模拟

文章目录前言考场总结前言 260pts 100601000 线段树数组要乘4&#xff01;&#xff01;&#xff01; 结果想了一个多小时和暴力没差了。。。 呜呜呜 但总体还可以啦 T3玄学暴力竟然过掉了 告诉我们卡时的重要性 考场 先看题 T1原题啊啊啊&#xff01; 真就签到题了 感觉T2好…

Silence 主题配置代码

页面定制 import url(https://fastly.jsdelivr.net/gh/esofar/cnblogs-theme-silence3.0.0-beta3/dist/silence.min.css);media only screen and (max-width:1365px){.github-corner{display:none}}media only screen and (max-width:1259px){#home{width:100%!important}}medi…

AT3857-[AGC020C]Median Sum【背包,bitset】

正题 题目链接:https://www.luogu.com.cn/problem/AT3857 题目大意 给出nnn个数字的一个序列aaa&#xff0c;求它的所有非空子集的和的中位数。 1≤n,ai≤20001\leq n,a_i\leq 20001≤n,ai​≤2000 解题思路 考虑到假设所有数的和为SSS&#xff0c;一个集合的和为xxx&#x…

.NET Core 如何为项目提供高性能解决方案?

本系列&#xff0c;我们将探讨.NET Core 的一些好处&#xff0c;以及它如何为市场提供高性能解决方案&#xff0c;为传统.NET 开发人员和技术人员提供帮助。正文前言随着.NET Core 2.0 在 2016 年首次发布&#xff0c;微软拥有了这个通用、模块化、跨平台开源项目的下一个主要版…

1058. 股票买卖 V

1058. 股票买卖 V 题意&#xff1a; 给定一个长度为 N 的数组&#xff0c;数组中的第 i 个数字表示一个给定股票在第 i 天的价格。 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: …

[2.9训练]【CF909C】Python Indentation,【CF909D】Colorful Points,【CF909E】Coprocessor

文章目录T1&#xff1a;Python Indentation题目题解codeT2&#xff1a;Colorful Points题目题解codeT3&#xff1a;Coprocessor题目题解codeT1&#xff1a;Python Indentation 题目 题目描述 In Python, code blocks don’t have explicit begin/end or curly braces to mark…

模板:2-SAT问题

文章目录前言实现代码所谓2-SAT&#xff0c;就是解决两个SAT的问题 &#xff08;逃&#xff09; 前言 SAT 是适定性&#xff08;Satisfiability&#xff09;问题的简称。一般形式为 k - 适定性问题&#xff0c;简称 k-SAT。而当 k>2 时该问题为 NP 完全的。所以我们只研究 …

CF1481F-AB Tree【构造,背包】

正题 https://www.luogu.com.cn/problem/CF1481F 题目大意 给出nnn个点的一棵树&#xff0c;在每个节点上填a/ba/ba/b&#xff0c;要求恰好有mmm个aaa。要求每个节点到根路径上的字符串种类最少&#xff0c;输出方案。 1≤m≤n≤1051\leq m\leq n\leq 10^51≤m≤n≤105 解题思…

Docker最全教程之使用Tencent Hub来完成CI(十)

本周更新两篇&#xff0c;保证不太监&#xff01;在本系列教程中&#xff0c;笔者希望将必要的知识点围绕理论、流程&#xff08;工作流程&#xff09;、方法、实践来进行讲解&#xff0c;而不是单纯的为讲解知识点而进行讲解。也就是说&#xff0c;笔者希望能够让大家将理论、…

P4169 [Violet]天使玩偶/SJY摆棋子(CDQ分治+欧几里得距离)

P4169 [Violet]天使玩偶/SJY摆棋子(CDQ分治欧几里得距离) 记得上一次欧几里得距离的转化是CF1093G Multidimensional Queries&#xff0c;我们使用了点对在四种方向分别考虑并用 \(\max\) 合并的方法解决&#xff0c;现在使用一种类似的方法。 \(\bigstar\texttt{Trick}\)&…

[2.7]【CF933A】A Twisty Movement【CF926B】Add Points【CF917A】The Monster【CF919E】Congruence Equation

文章目录T1&#xff1a;A Twisty Movement题目题解codeT2&#xff1a;Add Points题目题解codeT3&#xff1a;The Monster题目题解codeT4&#xff1a;Congruence Equation题目题解codeT1&#xff1a;A Twisty Movement 题目 题目 题解 因为aia_iai​1/21/21/2&#xff0c;于…

LIS最长上升子序列

LIS算是比较经典的问题&#xff0c;常用的是O(n^2)的方法 for(int i1;i<n;i){dp[i]1;for(int j1;j<i;j){if(a[j]<a[i])dp[i]max(dp[i],dp[j]1);}mxmax(mx,dp[i]);}我们这里优化成O(nlogn) 我们模拟一个栈stack&#xff0c;每读入一个数&#xff0c;如果这个数大于栈顶…

AT5160-[AGC037C]Numbers on a Circle【贪心,堆】

正题 题目链接:https://www.luogu.com.cn/problem/AT5160 题目大意 给出两个长度为nnn的环序列aaa和bbb&#xff0c;每次你可以让aaa中的一个数变为它和相邻两个的和。 求最少的步数将aaa变为bbb。 1≤n≤105,1≤ai,bi≤1091\leq n\leq 10^5,1\leq a_i,b_i\leq 10^91≤n≤10…

YBTOJ洛谷P3209:平面图判定(2-SAT)

文章目录解析代码传送门解析 关键性质是一个定理&#xff1a;若m>3*n-6&#xff0c;必然不存在合法的平面图 这谁知道啊 不过这题应该往也许图过于稠密时必然无解这方面想 所以我们只需要考虑m、n同阶的情况就行了 这个时候我们直接暴力判断跑2-SAT就行了 代码 #include&…

线性代数 - 矩阵对角化

矩阵对角化 今天听 \(\texttt{m}\color{red}\texttt{yee}\) 嘴的&#xff0c;赶紧来补个学习笔记。 我们有点时候需要计算一个较小矩阵的 \(n\) 次幂&#xff0c;但直接求幂非常不方便&#xff0c;这是会考虑矩阵对角化&#xff0c;将 \(M\) 改写为 \(\mathcal{PDP^{-1}}\)&…

EF Core 数据库 Provider 一览

当 EF Core 1.x 系列和 2.0 版本之间经过重大的重写时&#xff0c;所有 EF Core 数据库 Provider 都受到重创。从那时起&#xff0c;各种私人和商业开发团队一直在努力填补这个空白。正文当 EF Core 1.x 系列和 2.0 版本之间经过重大的重写时&#xff0c;所有 EF Core 数据库 P…

[3.3训练赛]One-Dimensional(矩阵快速幂),Freda的迷宫(无向图强连通分量+并查集),一道防AK好题

文章目录T1:One-DimensionaltitlesolutioncodeT2:【NOIP模拟赛】Freda的迷宫titlesolutioncodeT3:【NOIP模拟赛】一道防AK好题titlesolutioncode确实没想到自己写文章能隔这么久&#xff0c;鸽王预警 T1:One-Dimensional title 考虑一个含有 N 个细胞的一维细胞自动机。细胞…