摘要:
先附上T1 不怕噩梦 蚊子最近经常做噩梦,然后就会被吓醒。这可不好。。疯子一直在发愁,然后突然有一天,他发现蚊子其实就是害怕某些事。如果那些事出现在她的梦里,就会害怕。我们可以假定那个害怕的事其实是一个字符串。而她做的梦其实也是一个字符串。 她可以一个晚上一直做梦,所以梦这个字符串会很长,如果其中包 阅读全文
摘要:
这题很水 但是他给我们提供了一个很好的思路 两个人相遇时反向行走是不是就相当于这两个人从对方的身体中穿过去了呢? 那么这道题就解决了 是不是很水? 阅读全文
摘要:
现在的题都好难啊 看题 这道题我一开始觉得很简单写了一个小时,发现自己写了一个错的算法 于是看了看题解 发现并没有这么简单 我来讲解一下 看到了m的范围 1<=m<=2 如果m=1,这题就很简单了,就是求k个最大子段和 这里可以分开来讨论 m=1时的dp方程就是 dp[i][j][1]=max(dp 阅读全文
摘要:
这也是一道dp方程很难想出来的dp 要是想通了方程,后续的推导也需要花费一定的时间,所以是一道好题 我直接讲dp方程吧 因为我也没有想出来dp方程,是某个同学告诉我的 dp[i][j][k]表示到了第i行,这一行之前有j列放了1个棋子,有k列放了2个棋子 这个方程确实不好想 转移有一点多 总共有6个 阅读全文
摘要:
同样是一道dp好题,我死也想不出dp方程,看了题解才知道 还是我太蒻了 看看题目描述吧 我们设dp方程dp[i][j],表示前i个人,在1队打饭的总时间为j,吃完饭要花的最小时间 这题有一个小小的贪心,就是要让打饭吃饭慢的人先打饭,这样显然可以保证最优 于是考虑一下转移 dp[i][j]=min(d 阅读全文
摘要:
这是一道dp好题 废话不多说,看看题目意思 这道题又运用了前缀与预处理的思想 我们看着代码来解释 先解释一下各个数组的意思 l[i][j]表示i,j这个点向左拓展能满足条件的最远的点的位置 r[i][j]表示i,j这个点向右拓展能满足条件的最远的点的位置 s[i][j]表示i,j这个点向上拓展能满足 阅读全文
摘要:
我一直觉得这题的题解写的有问题 大多数题解都说他是分组背包 但是我觉得这并不是分组背包,与分组背包有差别 咱们先看看题 题意就是要在不亏本的情况下,使最多的叶子节点看到比赛 咱们来想想这题的思路 这是典型的树形dp 也是我做的第一道树形dp 我们考虑一下dp方程 我们设dp[i][j],表示以i为根 阅读全文