摘要:
A. Single Wildcard Pattern Matching 题解:记 “ * ”的位置为pos(假设存在),那么就顺着匹配 0 ~ (pos - 1),倒着匹配 (pos + 1) ~ n就行了,特判一下 n > m + 1 的情况 和 没有 “ * ”的情况。 B. Pair of T 阅读全文
摘要:
官方题解: ps:长见识了,把DFS序先映射到1~n,然后再分块。维护块内合适的信息,就能使修改的复杂度降到 n1/2。当然询问的代价也是 n1/2. 太优秀啦,羞耻的坦白:看了大佬的代码,默写了一遍。解释一下重要的变量,cnt[ ]:跳出当前块的步数,net[ ]:跳出当前块后所在的节点(下一块的 阅读全文
摘要:
ps:这题的难点,寻找修改的位置之后有多少个苹果能被吃掉,比赛的时候想到的是讨论修改的位置,预处理每个位置的最大值和吃到苹果的数量,记最大值所在的位置为 id, 记修改的位置为 pos,分三种情况讨论,① pos < id,维护一个从 id ~ 1的递减序列,修改后在这个序列里二分查找。② pos 阅读全文
摘要:
ps:比赛的时候想到了做法,k次排序,然后每次消去能消的。。。然而这种做法是错误的,神奇的是测试案例中排在奇数的案例会WA,排在偶数的案例都过了,被注释的代码会T. 阅读全文
摘要:
ps:就一个普通的二分。。。永远都是debug的时间比写代码的时间还长 阅读全文
摘要:
ps:分段矩阵快速幂,因为P范围内只有√P段是不同的。写出的BUG:矩阵讲究左乘和右乘;取模较多可能会T,因为模运算很耗时;除法可能会除到0;只在3 ~ n的范围内分段,注意某段的端点是否大于n。 阅读全文
摘要:
A. New Building for SIS ps:是真的烦。没有考虑在同一个塔里面,用了20分钟debug。 #pragma warning(disable:4996) #include<cstdio> #include<deque> #include<vector> #include<cstr 阅读全文
摘要:
ps:模拟为啥能过。。。。写vector<deque<int> > mq会超内存,改成map<int, deque<int> > mq能行,why? 阅读全文
摘要:
ps:今天真是石乐志,改了一下午bug,结果是忘了排序。。。。。。。。。。这题姿势较多,坑点就一个。 题解:有个结论,任意两点之间如果至多存在两条不相交路径,那么每一条边至多出现在一个环中(very important !)。如果一个s - t割要割掉某个环中的边,那么割掉的边顶多只能是两条,且这个 阅读全文
摘要:
ps:枚举翻转区间的端点的数值,因为每个数都在0~9范围内,所以只需要枚举45种情况(C(10,2)组合数)。b串:0 1 2 3 4 5 6 7 8 9,枚举翻转区间的端点的数值3,6,得到新的b串:0 1 2 3 6 5 4 3 6 7 8 9,让这个串与原串跑一遍普通的最长公共子序列就能得到答 阅读全文