题目链接: http://codeforces.com/contest/1248/problem/D2 题意: 可以执行一次字符交换的操作 使得操作后的字符串,循环移位并且成功匹配的方案最多 输出最多的方案数和交换的位置 数据范围: $1\leq n \leq 300 000$ 分析: 参考博客:https://www.cnblogs.com/LLTYYC/p/11718968.html 对于一个字符串,求它的循环移位匹配方案数 可以把字符串转换成折线,从0开始,遇到(则加一,遇到)则减一 如果…
传送门 这一题好妙啊 首先把括号序列转化成平面直角坐标系 $xOy$ 上的折线,初始时折线从坐标系原点 $(0,0)$ 出发 如果第 $i$ 个位置是 '(' 那么折线就往上走一步($y+1$),否则往下走一步 ($y-1$) 这条折线有很多有用的性质 $1.$如果某个时刻折线的纵坐标为负数了,那么说明这个括号序列一定是不合法的 证明也挺好理解的,变成负数说明没有足够的 '(' 和 ')' 匹配了,显然不合法 $2.$如果最终位置 $n$ 的折线 $y$ 坐标不为 $0$ ,那么一定不合法,因为…
D2. The World Is Just a Programming Task (Hard Version) This is a harder version of the problem. In this version,…
题目链接:http://codeforces.com/problemset/problem/5/C 题目大意:给出一串字符串只有'('和')',求出符合括号匹配规则的最大字串长度及该长度的字串出现的次数.解题思路:设dp[i]为到i的最大括号匹配,我们每次遇到一个'('就将其下标存入栈中,每次遇到')'就取出当前栈中里它最近的'('下标即栈顶t.不能直接dp[i]=i-t+1,比如(()()())这样的例子就会出错,应为dp[i]=dp[i-1]+i-t+1. 代码 #include<bits/…
E. A Simple Task 题目连接: http://www.codeforces.com/contest/558/problem/E Description This task is very simple. Given a string S of length n and q queries each query is on the format i j k which means sort the substring consisting of the characters from…
冲鸭,去刷题:http://codeforces.com/contest/1153/problem/C C. Serval and Parenthesis Sequence time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Serval soon said goodbye to Japari kindergarten, and b…
题目链接:http://codeforces.com/contest/918/problem/C 题目大意:给你一串字符串,其中有'('.')'.'?'三种字符'?'可以当成'('或者')'来用,问该字符串中有多少子串符合括号匹配的规则. 解题思路:根据括号匹配原始版进行改进,设置high和low分别表示未匹配左括号数的上限和下限,当遇到'('时low++,high++,遇到')'时low--,high--,遇到'?'时由于既可以表示'('又可以表示')',所以high++,low--. 原始版…
CF1239B The World Is Just a Programming Task 题目描述 定义一个括号序列s是优秀的,当且仅当它是以下几种情况的一种: 1.|s|=0 2.s='('+t+')',其中t是优秀的 3.s=t1+t2,其中t1.t2都是优秀的 一个括号序列的价值为将它看成一个循环串,从多少个位置切开,能切出循环串. 给出一个长度为\(n\)的括号序列,你可以交换其中两个位置的括号(这两个位置可以相等),问最大价值及方案. 输出任意一种方案均正确.\(n\leq 3\tim…
A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Tonio has a keyboard with only two letters, "V" and "K". One day, he has typed out a string s with only t…
这个题真的是超级超级水啊,哈哈哈哈哈哈.不要被题面吓到,emnnn,就这样... 代码: 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<algorithm> 5 using namespace std; 6 int main(){ 7 int n,m; 8 int t; 9 scanf("%d",&t); 10 while(t--){…