钨哄魁 发表于 2025-6-6 22:42:15

补题Codeforces Round 962 (Div. 3) Decode

题意:

我们需要算所有l,r组合区间中的x,y组合使得0的数量等于1的数量。
思路:

1.暴力显然不可得,容易想到计算(x,y)的贡献,最后乘上所在区间即可;
2.这里我们将0视为-1,只要前后前缀和的值相等即可判断01数量相等,即sum == sum;(用哈希表即可
3.现在来求被包含多少个区间内,l的范围是,r的范围是,因此就是(x + 1) * (n - y + 1)
4.至于在更新时,我们不断对哈希表加上i + 1,因为这表示我们在下一次找到y时,我们可以选择作为左边界,共有i+1个数,而之前的也有贡献,自然就是加上而不是等于。
#include #define int long long#define endl '\n'using namespace std;const int N = 1e5 + 10, mod = 1e9 + 7;int n, x, k;void solve() {    string s;    cin >> s;    n = s.size();    s = ' ' + s;    vector sum(n + 1, 0);    for (int i = 1; i

崔瑜然 发表于 2025-12-19 12:37:39

这个有用。

边书仪 发表于 2025-12-19 15:57:46

过来提前占个楼

撵延兵 发表于 2025-12-26 08:08:04

懂技术并乐意极积无私分享的人越来越少。珍惜

司空娅玲 发表于 2026-1-14 02:26:11

感谢分享,学习下。

劳暄美 发表于 2026-1-14 10:11:52

不错,里面软件多更新就更好了

稿辏付 发表于 2026-1-17 20:07:15

谢谢分享,试用一下

溥价 发表于 2026-1-18 09:25:18

谢谢楼主提供!

骛扼铮 发表于 2026-1-18 14:24:35

懂技术并乐意极积无私分享的人越来越少。珍惜

辜酗徇 发表于 2026-1-22 19:23:22

很好很强大我过来先占个楼 待编辑

况雪柳 发表于 2026-1-25 04:39:48

感谢分享,下载保存了,貌似很强大

讲怔 发表于 2026-1-29 08:52:24

感谢分享

后沛若 发表于 2026-1-30 02:12:29

收藏一下   不知道什么时候能用到

忙贬 发表于 2026-2-1 04:01:41

分享、互助 让互联网精神温暖你我

剩鹄逅 发表于 2026-2-2 04:37:22

分享、互助 让互联网精神温暖你我

忿惺噱 发表于 2026-2-2 05:07:12

新版吗?好像是停更了吧。

硫辨姥 发表于 2026-2-4 04:56:51

懂技术并乐意极积无私分享的人越来越少。珍惜

粹脍誊 发表于 2026-2-5 07:21:57

谢谢分享,辛苦了

电棘缣 发表于 2026-2-6 10:03:34

前排留名,哈哈哈

于映雪 发表于 2026-2-7 09:29:14

收藏一下   不知道什么时候能用到
页: [1] 2
查看完整版本: 补题Codeforces Round 962 (Div. 3) Decode