首页 > 其他分享 >Bracket Sequences II

Bracket Sequences II

时间:2024-07-29 23:06:06浏览次数:12  
标签:return -- res ll II flag Bracket Sequences mod

原题链接

题解

一个合法的括号序列,满足

  • 长度为偶数

  • 前缀和处处不小于0

  • 左括号等于右括号数量

code

#include<bits/stdc++.h>
#define ll long long
#define lowbit(x) ((x)&(-x))
using namespace std;
const ll inf=1e18;
const ll mod=1e9+7;

ll qpow(ll a,ll n)
{
    ll res=1;
    while(n)
    {
        if(n&1) res=res*a%mod;
        a=a*a%mod;
        n>>=1;
    }
    return res;
}

ll inv(ll x)
{
    return qpow(x,mod-2);
}

ll C(ll n,ll m)
{
    ll res=1;

    for(ll i=1;i<=m;i++)
    {
        res=res*inv(i)%mod;
        res=res*(n-i+1)%mod;
    }
    return res;
}

void solve()
{
    ll n;
    cin>>n;

    string s;
    cin>>s;
    ll m=s.size();
    ll cnt=n/2;
    ll sum=0;
    bool flag=1;
    for(auto it:s)
    {
        if(it==')')
        {
            cnt--;
            sum--;
        }
        else sum++;
        if(sum<0) flag=0;
    }

    if(cnt<0||m-(n/2-cnt)>n/2||n&1) flag=0;

    if(flag) cout<<(C(n-m,cnt)+mod+mod-C(n-m,(sum+2LL+n-m)/2)+mod)%mod;
    else cout<<0;
}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll TT=1;
    //cin>>TT;
    while(TT--) solve();
    return 0;
}


标签:return,--,res,ll,II,flag,Bracket,Sequences,mod
From: https://www.cnblogs.com/pure4knowledge/p/18331267

相关文章

  • LeetCode - #107 二叉树的层序遍历 II
    文章目录前言1.描述2.示例3.答案关于我们前言我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到105期,我们会保持更新时间和进度(周一、......
  • 字符串——1.反转字符串II
    力扣题目链接给定一个字符串s和一个整数k,从字符串开头算起,每计数至2k个字符,就反转这2k个字符中的前k个字符。如果剩余字符少于k个,则将剩余字符全部反转。如果剩余字符小于2k但大于或等于k个,则反转前k个字符,其余字符保持原样。示例:输入:s="abcdefg",k=......
  • 【IEEE-CPS独立出版,高录用,该出版社检索快速且稳定!收稿主题大,管理、计算机相关主题皆可
    2024年创新与信息管理国际会议(ICIIM2024)为第四届管理科学和软件工程国际学术会议(ICMSSE2024)的分会,主会由ACM珠海分会,广州番禺职业技术学院主办;全国区块链行业产教融合共同体承办,将于2024年9月6-8日于广州召开。会议旨在为从事管理与信息工程领域的专家学者、工程技术人员、......
  • nii转dicom及修改dicom信息
    importnibabelimportnumpyasnpimportpydicomimportosfromtqdmimporttqdmdefconvertNsave(arr,file_dir,index=0,slice_thickness=1.0,pixel_spacing=(1.0,1.0)):"""`arr`:parameterwilltakeanumpyarraythatrepresents......
  • 算法笔记|Day10栈与队列II
    算法笔记|Day10栈与队列II☆☆☆☆☆leetcode150.逆波兰表达式求值题目分析代码☆☆☆☆☆leetcode239.滑动窗口最大值题目分析代码☆☆☆☆☆leetcode347.前K个高频元素(待补充)题目分析代码☆☆☆☆☆leetcode150.逆波兰表达式求值题目链接:leetcode150.......
  • yii2代码封装
    1、批量更新某个字段/***@throwsCDbException*@throwsCException*updatexxxTablesetcolumn1=casepk*whenwhenData1thencaseData1*...*END*whereidin(1,2,3...)*/publicfunctionbatc......
  • Allegro17.4 “.brd“ 转 ASCII
    1.找到`Cadence\SPB_Data`文件夹(一般在Allegro的安装目录下可以找到),添加到系统变量`HOME=xxx\Cadence\SPB_Data`。2.文件夹里面的文件全部拷入到`X:\xxx\Cadence\SPB_Data\pcbenv`目录下面。3.重启Allegro后,即可看到菜单栏新增了`BatchConversion`。4.点击Batc......
  • 力扣90题:子集II的 Java 实现
    引言LeetCode是一个流行的在线编程平台,提供了大量的算法题目供开发者练习。第90题“子集II”是一个中等难度的题目,要求找出数组的所有子集,但是含重复数字的子集只计算一次。本文将介绍如何使用Java解决这个问题。题目描述给定一个可能包含重复数字的整数数组nums,返回......
  • 代码随想录算法训练营第24天:回溯03:93.复原IP地址;78.子集;90.子集II
    93.复原IP地址力扣题目链接(opensnewwindow)给定一个只包含数字的字符串,复原它并返回所有可能的IP地址格式。有效的IP地址正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。例如:"0.1.2.201"和"192.168.1.1"是有效的IP地址,......
  • IIS Express介绍与使用
    IISExpress是什么?如何安装IISExpress如何启动IISExpress配置文件 IISExpress是什么?IISExpress是为开发人员优化的轻量级、自包含版本的IIS。IISExpress使使用当前最新版本的IIS来开发和测试网站变得容易。它具有IIS7及以上的所有核心功能,以及为简化网站开发而......