Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38964 swzzzz 【S】T2 C++ 通过 100 54 MS 2796 KB 988 2025-11-19 21:29:13

Tests(20/20):


#include<bits/stdc++.h> using namespace std; #define N 200005 #define mod 998244353 #define ll long long int n; bool a[N]; int b[N]; ll frac[N]; ll qp(ll x,ll y){ ll res=1; while(y){ if(y&1) res=(res*x)%mod; x=(x*x)%mod; y>>=1; } return res; } ll inv(ll x){ return qp(x,mod-2); } ll c(ll x,ll y){ if(y<0) return 0; if(y>x) return 0; return frac[x]*inv(frac[y])%mod*inv(frac[x-y])%mod; } int main(){ ios::sync_with_stdio(0); cin>>n; frac[0]=1; for(int i=1;i<=n;i++) frac[i]=(frac[i-1]*i)%mod; char ch; for(int i=1;i<=n;i++){ cin>>ch; a[i]=(ch==')'); b[i]=b[i-1]+(!a[i]); } ll ans=1; for(int i=1;i<=n;i++){ if(a[i]){ (ans+=c(n-i,n/2-b[i-1]-1)-c(n-i,n/2-b[i-1]-2)+mod)%=mod; // cout<<i<<' '<<c(n-i,n/2-b[i-1]-1)<<' '<<c(n-i,n/2-b[i-1]-2)<<endl; } } cout<<ans<<endl; return 0; }


测评信息: