ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2020寒假训练营4

2021-05-14 18:03:44  阅读:133  来源: 互联网

标签:数列 子段 训练营 括号 异或 寒假 2020 sum mod


2020寒假训练营4

A.欧几里得 如果已知 gcd(a,b) 共递归了 n次,求所有可能的a,b中满足a>b>=0且a+b最小的一组的a与b之和
打表发现是个斐波那契数列,直接输出即可

B.括号序列 给出一个仅包含’[’,’]’,’(’,’)’,’{’,’}'六种字符的括号序列,判断其是否合法
三个括号可以用栈来做,遇到左括号入栈,遇到对应的有括号则出栈,最后栈若为空则合法,其他情况不合法。

C.子段乘积 给出一个长度为 n 的数列,求其长度为 k 的连续子段的乘积对 998244353 取模余数的最大值

可以直接用线段树来做,将对区间的查询改为乘,此种方法较为便捷。
也可以用尺取加逆元来做,具体来说,若当前a[r]的值不为0,则连续乘k段,与存储的最大值作比较取最大,在指针移动时要注意,原本要求sum/a[r]的,但要用逆元求,即sum=sum*qpow(sum,mod-2)%mod;之后再进行指针的移动。若a[r] = 0,则跳过当前区间,并将sum置为1。

D.子段异或 输入一个数列a,你需要输出其中异或值为0的不同子段的数量
由异或的性质,abb=a,异或两次值不变。所以[l,r]区间的异或值为前r段的异或和异或前l-1段的异或和,所以可以把异或前缀和统计出来,再排序,对每个数计算左右都相同的数量。

标签:数列,子段,训练营,括号,异或,寒假,2020,sum,mod
来源: https://blog.csdn.net/qq_52764556/article/details/116799960

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有