摘要:
题意:给你一个矩形,问你从左上角 到右下角有多少个全部为0的矩形 思路:看了题解才发现真的是学到了,矩形的个数可以通过查行数(指定区域内的行数)每行的0的长度相加就的得到包含右下角的矩形个数,前面是一个基础的容斥,还有就是%1d,这个真的是学到的,还可以这样输入数字(大佬们就是强) 代码: 阅读全文
摘要:
题意:求最大对称子矩阵 思路:个人感觉有一点点偏记忆华搜索,有点像数塔一样,但还是没有想到,主要是没有仔细读题,总以为是某次网赛时的最大子矩阵问题 代码: 阅读全文
摘要:
思路:这个题是在一个n2的复杂度之上进行了dp方程的优化变形,最后变成线性dp,但还是有一些不懂(菜是本质,%oi爷们) 代码: 阅读全文
摘要:
题意:有m段区间选取不相交的多个区间,是的加和最大 思路:真是蠢的要死,变成区间就不会了,其实和lis一样(lis真是最好的算法 ) 代码: 阅读全文
摘要:
题意:给出每个人单独买票时间和每个人和前面那个人一起买票的时间,求最小时间 思路:因为只与时间有关,与时间有关的只有人,所以dp状态的定义很容易,但在推dp 方程的时候出了一点小问题,还是么读清楚题目 代码: 阅读全文
摘要:
题意:大概就是求一个序列,这个序列满足一个条件,和lis差不多,但是与lis不同的是不能进行二分搜索 思路:同lis,但这个题需要打印路径,之前一直不会打印路径,今天学到了,是用并查集类维护的,以前都是听说用栈的(手动压栈,每日压栈,不可自拔) 代码:(参考网上的题解,这里就不贴了) 阅读全文
摘要:
思路:这个题和hdu1069很像,基本一模一样 代码: 阅读全文
摘要:
思考:这道题真的印证了虎爷的话,最开始我还以为需要二维才能进行维护,看了题解以后才发现定义的状态一维就够了,不需要那么多 代码: 阅读全文
摘要:
思考:(这道题是抄kuangbin聚聚的),这个题给了2种状态,一个是段数,一个是数值,我感觉关于dp来说,最难定义的就是状态(可能我还没有入门)感觉定义了好的状态,在推到状态转移方程的时候才会更容易推出(虎爷说过一般题目上说到几个状态就把dp数组定义为几维),对于一道dp题应该先相处以个可行的方案 阅读全文
摘要:
#include using namespace std; struct Aho { int next[500010][26],fail[500010],cnt[500010]; int root,L; int newnode() { for(int i = 0;i Q; fail[root] = root; f... 阅读全文