Oj.Nbdp.Net
初赛题库
问题
状态
排名
团队
题解
课程
Login
问题 5587 --缩进问题
5587: 缩进问题
警告!
题目
状态
题解
题目描述
Python语言通过缩进的深度来表达语句所属的块。例如有如下代码: ```Python for i in range(0, 10): for j in range(0, 100): a = a + 1 b = b + 2 ``` 因为 `a = a + 1` 缩进最深,所以它属于内层循环,而 `b = b + 1` 缩进较浅,所以它属于外层循环。 Python 的另一个特点是,每条循环语句的循环体不能空,至少需要包含一条语句。 不幸的是,目前有一段 Python 代码的缩进全部消失了,请你计算一下,这段信息不全的代码,可能有多少种不同嵌套结构?例如 ```Python for i in range(0, 10): for j in range(0, 100): a = a + 1 b = b + 2 ``` 除了上一种结构外,还有一种结构为 ```Python for i in range(0, 10): for j in range(0, 100): a = a + 1 b = b + 2 ```
输入
第一行:单个整数 $n$,表示代码的行数; 接下来 $n$ 行:每行一个字符: + 字符 `f` 表示这是一行以 `for` 开头的循环语句; + 字符 `=` 表示这是一行赋值语句,为了保证程序至少有一种合理的解释,保证最后一个字符一定是 `=`。
输出
单个整数:表示输入代码的不同逻辑结构数量,由于可能比较大,输出模 $10^9+7$ 的余数。
样例输入输出
输入#1
复制
4 = f f =
输出#1
复制
1
输入#2
复制
4 f = f =
输出#2
复制
2
提示
+ 对于 $30\%$ 的数据,$1\leq n\leq 20$; + 对于 $60\%$ 的数据,$1\leq n\leq 500$; + 对于 $100\%$ 的数据,$1\leq n\leq 7000$。 样例1说明:只有唯一的一种解释
发表题解
序号
标题
作者
发表时间
费用
订购数
操作
题目信息
提交
难度
普及+/提高-
标签
模拟
点击显示
if ($pr_flag) { ?>
递交数
1
已通过
1
} ;?>
通过率
100%
时间限制
1 秒
内存限制
256 MB
来源
YACS2021年9月月赛乙组
收藏
标签云
模拟
数学与数论
动态规划
贪心
字符串
排序
枚举
数组与串
深搜
高精度
循环结构
递推
递归
二分三分
宽搜
背包
质数
线段树
分治
N进制
图论
队列
最短路
堆
树
并查集
栈
状态压缩
分支结构
几何
博弈论
生成树
顺序结构
离散化
hash表
位运算
单调队列
树状数组
KMP
字典树
二分图
数学期望
AC自动机
树链剖分
差分约束
数位动态规划
函数与过程
网络流
单调栈
前缀和