摘要: 这种微调状态的trick可以学学。以后计数DP觉得时间复杂度稍微超出了,而且状态显然要这么设置并且没有什么优化空间的时候就可以这么想 这里是计数DP的要求,做到不重不漏 这里要注意,对于一个SS串来说,如果其的两端能够配对,那么他就不可能是通过AB组合这种方式形成的,这也就是为什么对于任意一个SS串 阅读全文
posted @ 2024-01-18 23:18 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 最开始很容易想到设\(f[i][j][k]\)表示区间\([i,j]\)合并出\(k\)是否可以,显然复杂度爆炸 这样做的问题是什么? 冗余状态太多了!题目只关心给的那一个\(t\),我们只用想如何达到这个\(t\)即可 既然这样,我们考虑最终这个数是怎么来的,手动模拟一下 设有五个数A B C D 阅读全文
posted @ 2024-01-18 22:27 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 这道题目主要是想一下怎么输出方案吧 见代码 阅读全文
posted @ 2024-01-18 20:47 最爱丁珰 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 解释一下蓝书上面的\(f[i][x][y]\)到底是什么意思 我们认为三个员工是有名字的(即各不相同),那么\(f[i][x][y]\)表示完成第\(i\)个任务的时候,其中两名员工位于\(x\)和\(y\),另一名员工位于\(p_i\)的最小值,我们假设三元组\((x,y,z)\)表示三个员工的位 阅读全文
posted @ 2024-01-18 19:08 最爱丁珰 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 再提供一种证明方法,画的图跟Y总一样 那个红框框里面,我们任选一个点,比如中间那个点,设为\(b[i]\),我们将其向靠近\(a[i]\)移动(不妨设为向上),在移动过程中,有可能会导致后面一些比\(b[i]\)大的\(b\)跟着往上面移动,然后改变和值,当整体往上移动会导致和值变大时,我们将整体往 阅读全文
posted @ 2024-01-18 17:38 最爱丁珰 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 这道题目本来很简单 主要是来看一下普通DP怎么做 这个相当于形成了一个DAG 这种矩阵成DAG的模型可以注意一下 阅读全文
posted @ 2024-01-18 16:54 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: ![](https://img2024.cnblogs.com/blog/2490134/202401/2490134-20240118162813139-1815847992.png) 阅读全文
posted @ 2024-01-18 16:28 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 这道题目可以二分 求出二维前缀和,枚举每一个顶点,然后二分正方形边长,显然具有单调性,时间复杂度为\(O(n^2logn)\) 如果\(n\)为\(5000\)怎么办? 这个时候要用到DP 说明一下正确性 假设我们的\(min\)取的是\(f[i-1][j]\),如下 那么对当前这个顶点的正方形就是 阅读全文
posted @ 2024-01-18 16:14 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑