02 2020 档案

摘要:具体参看 浅谈用极大化思想解决最大子矩形问题 这篇论文 其实本来是想做单调栈的,但是碰巧看到了最大子矩阵问题,当然可以用单调栈做,但是我先学习了悬线法,单调栈就先留个坑之后补一下 稍微说一下我对悬线法的理解,悬线的定义是上端点覆盖了一个障碍点或达到整个矩形上端的除两端外都不包含障碍点的竖线,通俗来说 阅读全文
posted @ 2020-02-28 01:18 cminus 阅读(350) 评论(0) 推荐(1)
摘要:从左往右扫,找到比第i个小的第一个数字,l[i] = l[last] + (i - last) * m[i],用单调栈O(n)维护这个过程,再从右往左扫,同理可以算出r数组,注意一下long long #include <bits/stdc++.h> using namespace std; con 阅读全文
posted @ 2020-02-27 17:10 cminus 阅读(109) 评论(0) 推荐(0)
摘要:ABC实在是没什么好说的,但是D题真的太妙了,详细的说一下吧 首先思路是对于a相等的分类,假设有n个,则肯定要把n-1个都增加,因为a都是相等的,所以肯定是增加t小的分类,也就是说每次都能处理一个分类,复杂度是O(n^2),这个思路很好写,优先队列随便搞一下就行了,但是题目中N = 2 * 1e5, 阅读全文
posted @ 2020-02-26 17:36 cminus 阅读(239) 评论(0) 推荐(0)
摘要:又是隔了一年才来补题的我 A、B水题就不用说了 C - Yet Another Walking Robot C题我居然卡了一会,最后决定用map水,结果出来看了看题解,居然真的是map...没想到会出这样题解用stl的方法,是我失策了 #include <cstdio> #include <algo 阅读全文
posted @ 2020-02-16 13:49 cminus 阅读(118) 评论(0) 推荐(0)
摘要:最近网课也开始了,牛客上一堆比赛题目也没补,所以就D题后面的也懒得补了 A.Three String 水题 #include <cstdio> #include <cstring> using namespace std; char a[100010], b[100010], c[100010]; 阅读全文
posted @ 2020-02-14 14:03 cminus 阅读(179) 评论(0) 推荐(0)
摘要:AB水题就不说了 C .算概率 其实也是水题,n^2的概率dp,但是我场上没看这道题(雾 简单的状态转移方程dp[n][m]记录前n道题做出m道的概率 dp[n][m] = dp[n - 1][m - 1] * p[n] + dp[n - 1][m] * (1 - p[n]); //dp[n][m] 阅读全文
posted @ 2020-02-13 22:24 cminus 阅读(174) 评论(0) 推荐(0)
摘要:过了n天补的题解:D AB就不用说了 C. Obtain The String 思路挺简单的,就是贪心,但是直接贪心的复杂度是O(|s|*|t|),会超时,所以需要用到序列自动机 虽然名字很高端但是就是个数组啦(不过我自己想不到就是了) next[i][j]表示i之后第一次出现j字符的位置,用这个函 阅读全文
posted @ 2020-02-10 17:56 cminus 阅读(124) 评论(0) 推荐(0)
摘要:2都结束了我才补完1的题 我真的太菜了 总体来说不是很难(反正我也AK不了) A.honoka和格点三角形 公式挺好推的,容斥随便搞搞就出来了,但是我错了8次....刚开始以为是取模的问题,后来把所有的数都取模了还是有问题,才发现因为用同余定理时候存在减法,会产生有负数的情况,所以需要(ans+MO 阅读全文
posted @ 2020-02-07 15:10 cminus 阅读(215) 评论(0) 推荐(0)
摘要:欧拉函数裸题 可惜我太久没做题忘了欧拉函数是什么了... 注意判断一下n = 1的情况就好了 #include <cstdio> using namespace std; const int N = 40010; typedef long long ll; ll phi[N]; int n; inl 阅读全文
posted @ 2020-02-03 15:23 cminus 阅读(98) 评论(0) 推荐(0)