1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

设一个子序列中字符 111 的个数为 xxx,字符 000 的个数为 yyy,那么子序列长度为

t=x+yt=x+y t=x+y

题目要求这个子序列是“好的”,即:

P4751.第3题-子序列计数

    1000ms Tried: 18 Accepted: 8 Difficulty: 7 所属公司 : 阿里
    算法与标签>数学

题目内容

给定一个仅由′0/1′ '0/1' ′0/1′组成的字符串 sss。对任意一个(不为空)子序列t tt,记其长度为∣t∣ |t|∣t∣、其中字符 ′1′'1' ′1′的数量为 x。若满足∣t∣ |t|∣t∣ 是 x 的倍数且x x x不为 000,则称 t 为 “好的”。

请你统计 ss s中 “好的” 子序列的个数。注意,如果两个子序列是通过选取原字符串中不同位置的字符集合得到的,那么即使它们构成的字符串相同,也应被视为不同的子序列。由于答案可能很大,请将答案对 (109+7)(10^9+7) (109+7)取模后输出。

【子序列】定义 子序列为从原字符串中删除任意个(可以为零)字符得到的新字符串。

输入描述

每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≤T≤2×105)T (1≤T≤2×10^5)T(1≤T≤2×105) 代表数据组数,每组测试数据描述如下:

  • 第一行输入整数n(1≤n≤2×105) n (1≤n≤2×10^5) n(1≤n≤2×105)表示字符串长度;
  • 第二行输入一个只包含 ′0/1′'0/1'′0/1′的字符串 sss。

保证所有测试中 nn n的总和不超过 5×1055×10^55×105

输出描述

对于每组测试数据,输出一个整数,表示 sss 的 “不同好的子序列” 的个数。

由于答案可能很大,输出对 109+710^9+7 109+7取模的结果

样例1

输入

3
3
101
2
00
2
01

输出

5
0
2

说明

样例一:sss="101101101",符合的子序列(用位置集合表示):{111}, {333}, {1,21,21,2}, {2,32,32,3}, {1,31,31,3}。

样例二:sss="000000",无符合子序列(因 x=0x=0 x=0不计)。

样例三:sss="010101",符合的子序列:{222}, {1,21,21,2}。

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 1, 350ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?