摘要:
我的心路历程:当你觉得一题是傻逼题,没想出来,就觉得是神仙题,看题解后又发现题解说这题是傻逼题,写完后发现这题真的是傻逼题 我们可以发现,对于在n前面的数,每个数字(包括0,因为把0删掉就相当把它变成前导0)出现的次数都是一样,那么题目就变成了:问在这些数字组成的全排列中,在n前面的有多少 直接数位 阅读全文
posted @ 2021-05-24 17:25
enisp
阅读(51)
评论(0)
推荐(0)
摘要:
最初始的状态:dp[i][j][k][l], 表示现在正在进行第i个需求,三个司机分别在j, k, l这三个城市 i可以省,因为j,k,l中必须有一个等于i 状态就变成了:dp[i][j][k],表现有一个司机在第i个需求的城市,其他两个司机分别在j城市和k城市 i这一维还可以滚掉 #include 阅读全文
posted @ 2021-05-24 17:19
enisp
阅读(67)
评论(0)
推荐(0)
摘要:
折磨啊,这题 调了一个上午加大半个下午,就因为一个非常的小的小bug 直接区间dp,转移分两种情况:1. 整个区间可以被折叠。 2. 整个区间可以被两个更小的区间拼起来 为什么不需要考虑一个区间又折叠又拼呢?因为这些操作都可以被包含在第二个转移情况中 #include <iostream> #inc 阅读全文
posted @ 2021-05-24 17:14
enisp
阅读(42)
评论(0)
推荐(0)
摘要:
个人感觉是,像这类线性dp,只要把状态想出来了,转移轻而易举 这题我感觉我多想想也能想出来,但是想到一般看题解去了 dp[i][j][k][0/1/2]表示在第i行第j列,涂了k次,当前块涂的是0/1,或者不涂(2),i这一维度可以滚掉 转移: dp[i & 1][j][k][2] = (j == 阅读全文
posted @ 2021-05-24 10:38
enisp
阅读(32)
评论(0)
推荐(0)

浙公网安备 33010602011771号