题目传送门 Description 有一个长度为 \(n\) 的 \(01\) 串,里面有一些还没有确定,我们标记为 ? .可以进行若干次操作,每次操作可以把三个相邻的数替换成它们的中位数.问有多少种把 ? 填为 0/1的方法使得该 \(01\) 串最后能变为 \(1\) . Solution 我们先考虑如何判断一个 \(01\) 串是否合法. 可以想到的是,我们的 \(000\) 一定要先删掉.然后考虑 \(01,10\) ,因为如果出现这两个,那么无论再有 \(0,1\) 都由新加入的值决定…
题意 给出一个长度为奇数\(n\)的残缺01串,问有多少种补全方法,每次将连续三个位替换为它们的中位数后,能有一种方案使它变为1. \(n \le 3*10^5\) 思路 左边表示栈顶. 将操作简化为:将000变为0:将111变为1:删掉相邻的01或10. 考虑这些操作的优先级,显然是每次有000就执行,没有就执行01或10,都没有再执行 111.同类内部的顺序并不影响结果. 现在考虑用栈维护,从左往右加入串中字符,如果加入了 1,那么栈顶是 0 便可弹掉: 如果加入了 0,由于 000 优先于…
Atcoder 题面传送门 & 洛谷题面传送门 首先考虑对于固定的 01 串怎样计算它是否可以通过将三个连续的 \(0\) 或 \(1\) 替换为其中位数得到.我们考虑单调栈,新建一个栈,栈底到栈顶分别是一段连续的 \(1\) 和一段连续的 \(0\),分别表示当前未合并完的字符,我们从左往右扫描,每遇到一个字符可分以下两种情况: 如果我们遇到一个 \(0\): 如果栈为空,那直接将这个 \(0\) 入栈就好了. 如果栈顶 \(0\) 的个数 \(\ge 2\),那么显然我们可以把三个连续的 \…
题目大意 有个奇数长度的 \(01\) 串 \(s\) 其中有若干位置是 \(?\). 每次可将 \(3\) 个连续的字符替换成这三个数的中位数. 求有多少方案将 \(?\) 替换成 \(0/1\) 使得进行 \(\frac{N-1}{2}\) 次操作后的字符串是 \(1\). \(1 ≤ ∣S∣ ≤ 300000\) 解题思路 吐了,还想什么自己写,想了 114514 年也不懂哦 首先,对于这种求合法方案的,先看给出一个方案,怎么判断是否合法. 然后,对于这种选某一段消除/合并的,可以拿一个栈…
3174: [Tjoi2013]拯救小矮人 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 686  Solved: 357[Submit][Status][Discuss] Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚到肩膀的高度Ai,并且他的胳膊长度为Bi.陷阱深度为H.如果我…
BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚到肩膀的高度Ai,并且他的胳膊长度为Bi.陷阱深度为H.如果我 们利用矮人1,矮人2,矮人3,...矮人k搭一个梯子,满足A1+A2+A3+....+Ak+Bk>=H,那么矮人k就可以离开陷阱逃跑了,一 旦一个矮人逃跑了,…
正解:贪心+dp 解题报告: 传送门! 我以前好像碰到过这题的说,,,有可能是做过类似的题qwq? 首先考虑这种显然是dp?就f[i][j]:决策到了地i个人,跑了j个的最大高度,不断更新j的上限就得到答案了(显然i可以省略但为了表述更清晰一点就懒得省辣? 然后这时候就考虑一个问题,就是,dp的要求是无后效性嘛,但这里有个问题,假如有三个人,高度分别为(1,1)(1,1)(100,100),然后洞的深度是100,如果直接按这个顺序dp,那就只有最后一个人能跑出去了,但实际上只要我们合理安排一下顺…
题目描述 给出 $A$ 串和 $B$ 串,从 $A$ 串中选出至多 $x$ 个互不重合的段,使得它们按照原顺序拼接后能够得到 $B$ 串.求是否可行.多组数据. $T\le 10$ ,$|A|,|B|\le 10^5$ ,$x\le 100$ . 题解 后缀数组+倍增RMQ+贪心+dp 设 $f[i][j]$ 表示从 $A$ 串的前 $i$ 个字符中选出 $j$ 段,能够拼出 $B$ 串的最大长度. 那么考虑转移,如果 $i+1$ 不用则 $f[i+1][j]\leftarrow f[i][j]…
题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚到肩膀的高度Ai,并且他的胳膊长度为Bi.陷阱深度为H.如果我 们利用矮人1,矮人2,矮人3,...矮人k搭一个梯子,满足A1+A2+A3+....+Ak+Bk>=H,那么矮人k就可以离开陷阱逃跑了,一 旦一个矮人逃跑了,他就不能再搭人梯了.我们希望尽可能多的小矮人逃跑, 问最多可以使多少个小矮人逃…
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1257 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28195#problem/D 最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 12863    Accepted…