A.回文括号序列计数
题目链接:https://ac.nowcoder.com/acm/contest/9986/A
题目描述:
我们定义一个字符串S是回文的,表示S的左右反转和S相同。
我们定义一个字符串是括号序列:
- 空串是括号序列。
- 两个括号序列P和Q的拼接是括号序列。
- 如果P是括号序列,’(’+P+’)'是括号序列。
求长度为 n (0<=n<=10^9) 的回文括号序列的方案数,对 998244353 取膜。
输入描述:
第一行一个 T 表示数据组数。T<=1000000。
接下来 T 行,每行一个 n 。
输出描述:
T 行。对于每组数据,你的答案。
示例1:
输入
2
0
1
输出
1
0
解题思路:
emm……巨坑无比!!!
因为回文,所以第一个和最后一个是相等的,若都是左括号,第一个括号无法完成匹配。若都是右括号,最后一个括号无法完成匹配。因此n=0时,只有空串只有一种情况,n>0时不存在回文括号序列。
代码如下:
#include<iostream>
using namespace std;
int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
if(n==0)printf("1\n");
else printf("0\n");
}
return 0;
}