摘要: 我们将最后剩下的数写成$k$进制数,即$0.a_1a_2a_3a_4…$ $\therefore a_i$代表最后第$i$次合并了$a_i$与$k a_i$个$0$所得到的数. 所以我们可以设$dp[i][j]$表示当前的数已经有了$i$位,$\sum_{j=1}^{i}a_i=j$的方案数. 显而 阅读全文
posted @ 2019-10-24 23:09 wuhan2005 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 首先这个距离就叫做切比雪夫距离,即$qdis(\{x_1,y_1\},\{x_2,y_2\})=\max(|x_1 x_2|,|y_1 y_2|)$ 可以证明$\max(|x_1 x_2|,|y_1 y_2|)=\frac{|x_1 x_2+y_1 y_2|+|x_1 x_2 y_1+y_2|}2$ 阅读全文
posted @ 2019-10-24 20:25 wuhan2005 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 首先这个题目问的是从$1$到$n$的路径问题.所以我们可以先将与这些路径无关的边权直接赋为你喜欢的数$\in\{1,2\}$. 令$dis[i]$表示确定玩$w[i]$后从$1$到$i$的最短距离. 那么对于剩下的任意一条边$\{u,v\}$,必定有$1\leq dis[v] dis[u]\leq2 阅读全文
posted @ 2019-10-23 20:39 wuhan2005 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 首先对于$n define il inline define rg register using namespace std; typedef long long ll; const int mod = 1e9 + 7, O = 55; ll n; int m, k, res, ans, sta[O 阅读全文
posted @ 2019-10-22 23:07 wuhan2005 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 如何设置$dp$状态还是比较好想的. 设$dp[1/2][0/1][i]$表示已经有了一个或两个子段,当前的第$i$个数选或不选的最大方案数(先不考虑环的情况). 让我们一个一个分析. $dp[1][0][i]=\max(dp[1][0][i 1],dp[1][1][i 1])$就是在第$i 1$个 阅读全文
posted @ 2019-10-22 20:52 wuhan2005 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 这里有一种非常鬼畜的$dp$方法. 令$dp[i][j]$表示区间的最大值为$i$,区间的起始点为$j$的区间长度. $$ \therefore dp[i][j]=dp[i 1][j]+dp[i 1][j+dp[i 1][j]] $$ 当然前提是$dp[i 1][j]$和$dp[i 1][j+dp[ 阅读全文
posted @ 2019-10-22 14:19 wuhan2005 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 区间DP连手题. 设$dp[st][ed]$表示将区间$[st,ed]$染成合法的最小方案数. 分两种情况讨论. 当$s[st]=s[ed]$时,$dp[st][ed]=\min(dp[st+1][ed],dp[st][ed 1])$ 当$s[st]!=s[ed]$时,$dp[st][ed]=\mi 阅读全文
posted @ 2019-10-21 21:07 wuhan2005 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 此题与$luoguP1220$关路灯类似,但是这个题目的收益随时间的变化而变化. 起初我思考来一个三维$dp$,即两维坐标,一维时间. 可惜爆了空间(艹). 但是由于时间是线性的,所以我们可以反着设. 即设$dp[0/1][st][ed]$表示处理完按坐标排序后的第$st$个蛋到第$ed$个蛋被处理 阅读全文
posted @ 2019-10-21 20:20 wuhan2005 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 看到数据范围,外星人出现的时间范围是$10^4$,而只有300个外星人,显然先对数据进行离散化. 然后我们可以进行区间$dp$.令$dp[L][R]$表示在时间$[L,R]$内打死所有被区间完全包含的外星人所花费的代价. 首先对于没有包含任何外星人的区间,它的$dp$值直接赋为零. 反之,我们贪心的 阅读全文
posted @ 2019-10-20 22:29 wuhan2005 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 首先,我们可以对于每一个景点,求出从这个景点出发的乘客最晚到达的时间.记为$T[i]$ 再记$Tim[i]]$表示公交车从景点$i$出发的最小时间. $$\therefore Tim[i]=\max(Tim[i 1],T[i 1])+d[i 1]$$. 同时,我们可以求出在每一个点下车的乘客数量$z 阅读全文
posted @ 2019-10-19 17:17 wuhan2005 阅读(95) 评论(0) 推荐(0) 编辑