摘要: 题目链接 题意 给出一个长度字符串$T$,其中只包含四种字符$(A,C,G,T)$,需要找一个字符串$S$,使得$S$的长度为$m$,问$S$和$T$的$lcs$为$0,1,2...|T|$时,分别有多少种情况。 $|T| include include include include includ 阅读全文
posted @ 2019-01-24 12:49 wxyww 阅读(144) 评论(0) 推荐(1) 编辑
摘要: 题目链接 思路 乍一看这是一个01背包的裸题。但是数据范围$10^5$是无法承受的。 但是发现$p_i$和$w_i$只有10,也就是说最多只有100种物品。所以可以对他们进行分组。然后用二进制优化多重背包来做。 二进制优化多重背包 多重背包是指限定物品数量的一种背包问题。 多重背包可以转化为01背包 阅读全文
posted @ 2019-01-24 12:48 wxyww 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题面 思路 可以发现其实就是询问一个最长的区间,使得这个区间的平均数大于等于k。所以将区间内所有数字减去k,然后做一遍前缀和。只要是前缀和之差大于等于0的区间。就是满足条件的。 所以现在问题就成了对于前缀和上的每个数字,找到一个最靠前的比他小的数字。 这个可以用单调栈。可以发现如果后面的数 阅读全文
posted @ 2019-01-24 12:46 wxyww 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题面 思路 先考虑$n \leq 100$的做法。 区间dp。 状态。用$f[l][r]$表示知道l到r内$x$的位置最少需要的时间 转移。枚举一个$l \leq k \leq r$。那么现在我们要在k处挖油了,然后我们根据k处有没有油再去确定下次是挖$[k + 1,r]$还是$[l,k 阅读全文
posted @ 2019-01-24 12:44 wxyww 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题目链接 思路 看到n比较小,可以状压。 可以先考虑什么情况下会无法平衡。显然就是排完序之后两两相邻的不能满足小于等于c的限制。 状态。用f[i]来表示i集合中的鹿完成交换所需要的次数。 预处理。无法平衡的肯定就是INF。已经平衡的是0。其他的先暂设为k 1(k是i集合中鹿的个数)。 然后转移。每个 阅读全文
posted @ 2019-01-24 12:42 wxyww 阅读(145) 评论(0) 推荐(0) 编辑