![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
noip_mystery
When you look back in the future, the self you once were will be your doppelganger.
展开
-
8.8实战感悟
话说今天的题目除了最后一题其他都还可以,感觉最有收获的还是T5T1-T3全是特别傻的题,20min绰绰有余T4dp十分明显 分析一下状态转移方程 f[i]=max(f[j-1]+s[i]-s[j])(f[i]表示i取的最优值) 显然我们可以把s[i]拎出来,那么转移方程就变为: f[i]=max(f[j-1]-s[j])+s[i] 显然可以用单调队列优化 时间复杂度 O(n)T5表示考试的原创 2017-08-08 19:37:16 · 272 阅读 · 0 评论 -
8.10实战感悟
今天的题真心难……果然我昨天说今天的题会很难 想想8.13怎么办……真想去普及 我们来讲讲今天的题吧 8.10爆炸记T160%谁都会,大暴力 O(NM) 计算时可以直接用lowbit 80%: 考虑到二进制位是每位独立的,所以对于每一组合法的Ai和Bj,它们只有2位是不同的(通过xor的性质可以知道) 顺便再扯一下,xor有交换律之类的东西 比如:x ^ y = z => y原创 2017-08-10 18:31:41 · 144 阅读 · 0 评论 -
8.14实战感悟
今天的题相对于来说并不是那么难……T1显然 O((NM)^3)是不行的 所以我们要考虑优化 两种方法的大致思路是不变的:先枚举横着怎么切,再想办法优化竖着切的过程 我们可以用二分答案来解决这个问题 要求最小值最大,基本上就是二分了 说一说怎么二分答案 二分最后的最小值是多少 然后开始切,枚举到某一列的时候我可以知道当前4个矩形分别的面积 如果4个矩形中面积最小的不小于二分出来的答案,原创 2017-08-14 21:19:07 · 149 阅读 · 0 评论 -
8.24实战感悟
感觉今天的实战还是相对比较有价值的 第一题方法很精妙,第三题很神奇的区间dp(表示100%为什么不是 O(n3)\ O(n^3)还不是特别明白,比较奇怪,转移的正确性不太懂)T1给 n\ n个数,按照 1−n\ 1-n一一插入,告诉你每一次 i\ i插在哪里,求最后的序列 n<=106\ n<=10^6 暴力不说了,c++选手用vector模拟可以拿到30%的分数 标算: 建立一棵完全二原创 2017-08-24 22:02:17 · 254 阅读 · 0 评论