摘要: H 贡献法 考虑计算01串中每一位对答案的贡献并求和: 由于每个连续段的贡献只有1,故可设定一个连续段的贡献是由这个连续段的第一个数字造成的。那么计算某一位的贡献,就只需要让这个数字成为某个连续段的开头即可。 具体地,假设计算第i位且s[i]=0。要计算这一位对答案的贡献,则要让这一 阅读全文
posted @ 2025-02-12 15:59 jxs123 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 一般这种题都涉及到概率。对于这种类型题目,直接用递归式表示状态来进行状态间的转移,并在计算过程中记忆化即可。若在转移式两侧出现了相同的状态,直接移项即可。 牛客周赛80 G ABC 350 E 阅读全文
posted @ 2025-02-10 10:03 jxs123 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目链接:problem 大致意思就是给定一个0~9字符串,计算所有结尾非0,且能被结尾数字整除的子串个数。 很容易想到能dp,但是如何推导是一个难点。具体需要利用到模运算式子来推导。 直接参照灵神题解:editoral 注意单独一个非0数字也合法,在每一个位置的转移前要赋上初值。 阅读全文
posted @ 2025-02-09 15:25 jxs123 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 多项式乘法可以用O(n2)逐项得到,但不高效。而FFT可以用O(nlogn)快速计算 利用FFT来解决算法题的例子: ABC392 G 要找给定数组中满足A+C=2B的升序三元组(A,B,C)的数量,可以通过构造多项式的方式巧妙计算: 设\(a=[1,2 阅读全文
posted @ 2025-02-09 09:49 jxs123 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 问题:给定a1,a2,...,an,对于每个i[1,n],求出从i左侧开始数 第一个和第二个 元素值>a[i]的位置 只求第一个,可以用单调栈来做。但要得到第k个,应该怎么做呢? 将数组按顺序构建双向链表 先将原数组按值排序,排序时要记录每个元素原来的 阅读全文
posted @ 2025-02-08 19:19 jxs123 阅读(3) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示
主题色彩