摘要:
看到这到题,很容易想到一种定义状态的方式$f[i][x][y][z]$表示完成前$i$个请求,三个人的位置分别在$x,y,z$,但很明显如果这么定义会超空间,所以想办法减掉一位,因为完成请求必须要有一个人在请求发生的位置,那么,我们就可以用当前完成的第$i$个请求来推出其中一个人的位置,所一这个状态 阅读全文
摘要:
看到这道题,很容易想到是一道树型DP,那么该如何做? 首先我们可以先这样定义状态,$f_{i,j}$表示以$i$为根节点,向下走$j$步最多能经过多少点,但很明显,只是这样是不行的,所以我们再加一维,第三维为0表示不会到根节点,第三维为1表示需要回到根节点,那么就可以得出状态转移方程 \(\begi 阅读全文
摘要:
看完这到题,很容易想到用背包做,即设状态$f_{i,j}$表示前$i$个商店一共带了$j$吨货的最小花费,只需要先把商店的位置排个序,就可以直接枚举了,那么就可以得到状态转移方程 \(\begin{cases} f_{i,j}=f_{i-1,j}+j*j*(X_i-X_{i-1}),u=0\\ f_ 阅读全文
摘要:
第一遍读完这道题,这不就是个裸的KMP板子吗,然后迅速打出了KMP,发现并过不了样例2,于是又仔细读了一下题,发现读漏了一个条件,即需要在中间也出现过,因为我们知道,KMP中的next数组存的是相同的前缀和后缀的长度,那么只需要找在中间出现过前缀长度,并标记一下就行了,最后在匹配的时候多判断一下。 阅读全文