18级北航软件学院算法复习--Samshui
简单模拟 判断 贪心
对于一个串S:
操作1——选择下标i,j,i != j:
·result = S[i] & S[j]
·S[i] = result & S[i]
·S[j] = result & S[j]
操作2——选择下标i,j,i != j:
·result = S[i] | S[j]
·S[i] = result | S[i]
·S[j] = result | S[j]
操作3——选择下标i,j,i != j:
·result = S[i] ^ S[j]
·S[i] = result ^ S[i]
·S[j] = result ^ S[j]
问想哥最少多少步能达成心愿。如果想哥无法达成心愿,输出-1。
输入
第一个数为数据组数T
接下来2T行,第2i - 1行为手链B,第2i行为手链A
输出
对于每组数据,输出一行,最少的步骤数。特别地,如果无法达成,输出-1。
优先选择用时少且操作多的做法
B W型串
递归 字符串
一个由括号构成的字符串称为W型串(W-string),当且仅当该串可以表示为(A)或(A)(B)的形式,其中A,B是空串或W型串。例如()、((()))、(())()等是W型串,而()()()、(()(())())等不是W型串. 给出n个由括号构成的非空字符串,判断每个串是否为W型串.
输入
第一行为一个正整数n,表示需判断的字符串个数. 接下来n行,每行一个仅由左右括号(ASCII码分别为40和41)构成的非空字符串S。0 < |S| <= 1000; n <= 100.
输出
输出n行,分别对应每个字符串是否为W型串,如果是则输出Yes,否则输出No.
一组示例
8
(((((()))))) Yes
))()( No
((((() No
(()(())) Yes
((()())(()()))((()())(()())) Yes
(()(())()((())))() No
((())(()))((())(())) Yes
(((()()(((())))))) No
C 石头剪子布
FFT string-match 模板
石头Rock剪子Scissors布Paper。想哥和叶姐又开始这个有趣的游戏。众所周知,他们俩的游戏不可能公平。他们分别给出自己出的序列(RSP分别代表石头、剪刀、布)。想哥给出一个长度为n的序列,而叶姐给出长度为m的序列。1≤m<n≤100,000。叶姐显然有特权,她可以选择跳过想哥序列的一段开头,才开始将RSP序列进行匹配,以寻求从这一位置开始最多获胜次数。请你帮叶姐求出这一次数,这就是想哥请17级吃饭的次数。显然,R胜S,S胜P,P胜R。
输入
第一行为n,m,含义如上。接下来两行分别为想哥和叶姐的RSP序列。
输出
输出一行,最大获胜数