题目名称 3763. 波浪线
输入输出 wave.in/out
难度等级 ★★☆
时间限制 2000 ms (2 s)
内存限制 256 MiB
测试数据 20
题目来源 Gravatarop_组撒头屯 于2022-09-21加入
开放分组 全部用户
提交状态
分类标签
矩阵快速幂
分享题解
通过:1, 提交:2, 通过率:50%
Gravatarop_组撒头屯 100 3.904 s 3.09 MiB C++
Gravatarop_组撒头屯 0 0.000 s 0.00 MiB C++
关于 波浪线 的近10条评论(全部评论)

3763. 波浪线

★★☆   输入文件:wave.in   输出文件:wave.out   简单对比
时间限制:2 s   内存限制:256 MiB

【题目描述】

文化课上,$van$正在无聊的画着波浪线,“/\/\/\/\/\/\/\/\/\/\/\/\……”。

突然,他发现这波浪线很像字母 “$M,N,V,W$” 的组合。

于是他定义:$M=$/\/\ ; $N=$/\/ ; $V=$\/ ; $W=$\/\/。

现在$van$又画了好几段波浪线,并把他们连在了一起,他想问你共有多少种方案能将这条波浪线不重不漏地分成$M,N,V,W$。

【输入格式】

第一行一个正整数 $n$ ,表示$van$画的波浪线段数。

接下来 $n$ 行,每行一个字符 $s$ 和一个正整数 $L$,其中 $s$ 是“/”或“\”,表示$van$接着又画了一端开头为 $s$ ,长度为 $L$ 的连续波浪线。


你可能需要的ASCII码:  “/”=47    “\”=92。

【输出格式】

一个整数,表示总方案数。由于答案可能很大,你只需要输出答案对 $1e9+7$ 取模的值。

【样例输入1】

2
\ 2
\ 4

【样例输出1】

3

【样例说明1】

这段波浪线即“\/\/\/”

共有“$VVV$”,“$WV$”,“$VW$”,$3$种方案

【样例输入2】

2 
/ 2
\ 1

【样例输出2】

0

【样例说明2】

这段波浪线即“/\\”

显然没有方案。

【数据规模与约定】

记 $d=\sum{L}$

对于测试点$1$,保证 $n=1,d≤2$.

对于测试点$2-5$,保证 $n=1,d≤10^6$.

对于测试点$6-10$,保证 $d≤10^6$.

对于测试点$11-16$,保证 $n=1$.

对于所有测试点,保证 $1≤n≤10^5,1≤d≤10^{18}$.

由于技术原因 $d$ 的实际范围可能有少许偏差。

【来源】

$rsr$