随笔分类 - 动态规划 -- dp
摘要:"传送门" 题意: 现有大小为$n\cdot m,n,m\leq 2000$的网格,上面有些箱子。 你位于$(1,1)$要走到$(n,m)$,每步只能向右或者向下走,并且在走的过程中遇到箱子能够推动箱子。注意箱子不能重在一起或者超出这个边界。 问一共有多少种走法。 思路: 最常规的$dp$思路,直接
阅读全文
摘要:"传送门" A. Grade Allocation 签到。 Code B. String Modification 暴力即可。 枚举后缀,并且根据后缀的长度翻转前缀,最后取字典序最小即可。 Code C. Primitive Primes 题意: 给出两个多项式:$\displaystyle f(x
阅读全文
摘要:"传送门" A. XORinacci 签到。 Code B. Uniqueness 题意: 给出$n,n\leq 2000$个数,现在可以至多删除一段区间$[l,r]$。最后要使得剩下的数互不相同。问最终删除区间的最小长度为多少。 思路: 枚举左、右端点,用一个$set$来维护剩下的元素即可。 时间
阅读全文
摘要:"传送门" 题意: 现有$2^n,n\leq 17$个参赛选手,开始$2\cdot i,2\cdot i 1$两两配对进行比赛。 比赛规则:每场比赛中赢的人会进入胜者组,输的人会进入败者组,一个人如果输两次那么直接出局。最终胜者组和败者组最终会只剩下一个人,决赛时只进行一场,赢的人就胜利。 现在你有
阅读全文
摘要:"PTA" "牛客" A. Convolution 题意: 给出序列$a_{1...n}$,求$\displaystyle \sum_{i=1}^n\sum_{j=1}^n2^{a_ia_j}$。 $n\leq 10^5,a_i\leq 10^5$。 思路: $$ \begin{aligned} &
阅读全文
摘要:"传送门" A. Two Rabbits 签到。 Code B. Longest Palindrome 用$map$乱搞即可。 Code C. Air Conditioner 贪心。 每次我们找能够走到的一个区间,然后和能使客人满意的区间取交集,若交集不为空,则能够满足当前客人。 之后类似这样操作就
阅读全文
摘要:"传送门" A. Erasing Zeroes 签到。 Code B. National Project 贪心即可。 因为至少要保证一半以上为高质量的公路,所以先计算出至少需要多少天。 然后在此基础上分情况考虑就行。 Code C. Perfect Keyboard 题意: 给出$s$串,$|s|\
阅读全文
摘要:"PTA" "牛客" A. Alternative Accounts 题意: 现在有$n$个账号,举办$k,k\leq 3$场比赛。 现在每个人可能有多个账号,但每次只能用一个账号参加一场比赛。 现在给出$k$场比赛的参赛账号。 现在询问最少有多少人参加比赛。 思路: 分情况讨论即可。 我们可以直接
阅读全文
摘要:"PTA" "牛客" A. 托米的字符串 显然答案为: $$ \frac{n(n+1)}{2}\cdot\sum_{len=1}^n\frac{f(len)}{len} $$ 其中$f(i)$表示长度为$i$的所有串中含元音的个数。 显然$f(1)$易求,那么$\displaystyle f(2)=
阅读全文
摘要:"传送门" 题意: 给出一颗树,树上随机分配$0$到$n 1$的边权,不存在权值相同的两条边。 定义$mex(u,v)$为:树上$u$到$v$的简单路径中所有边权的$mex$。 求 $$ \sum_{1\leq u\leq v\leq n}mex(u,v) $$ 思路: 将问题转化为求一条边的贡献,
阅读全文
摘要:"传送门" A. Suits 签到。 Code cpp / Author: heyuhhh Created Time: 2019/12/15 17:21:42 / include include include include include include include include incl
阅读全文
摘要:"传送门" 题意: 给出$s,t$两个合法括号序列,现在找到一个长度最小的合法的序列$p$,使得$s,t$都为其子序列。 思路: 考虑$dp:dp[i][j][d]$表示第一个串在$i$,第二个串在$j$,答案串左括号和右括号之差为$d$时的最短长度。 那么转移时枚举下一位转移即可。 还需要考虑一点
阅读全文
摘要:"传送门" 感觉脑子还是转得太慢了QAQ,一些问题老是想得很慢。。。 A. Sweet Problem 签到。 Code B. PIN Codes 注意到$n$很小,不超过$10$,那么就直接暴力改变就行。 可以用一个$map$记录一下。 Code C. Everyone is a Winner!
阅读全文
摘要:"bzoj" 题意: 有$n$位同学,$m$门课。 一位同学在第$i$门课上面获得的分数上限为$u_i$。 定义同学$A$碾压同学$B$为每一课$A$同学的成绩都不低于$B$同学。 现在知道一个同学碾压了$k$个人,同时已知其各个科目的排名$r_i$,问有多少种情况满足这个说法。 思路: 考虑按照每
阅读全文
摘要:"传送门" A Circle 签到。 B Echo 签到到。 C Average Length 要卡下精度,可用二分或者long double来搞。 Code cpp / Author: heyuhhh Created Time: 2019/11/16 20:26:13 / include defi
阅读全文
摘要:"传送门" A. Single Push 直接乱搞即可。 Code B. Silly Mistake 贪心分组即可。 用一个$map$记录当前组一个人是否已经来过。 至于为什么用$map$,方便清零= = Code C. Sweets Eating 顺序没关系,排序后贪心分组即可。 公式推一推就行。
阅读全文
摘要:"传送门" A. Two Rival Students 签到。 Code B. Magic Stick 分情况讨论一下即可。 ~~神志不清讨论地很乱~~ Code C. Dominated Subarray 题意: 给出$n$个数,找到长度最短的区间,满足区间长度大于$1$且存在一个数其出现次数严格
阅读全文
摘要:"传送门" A. Payment Without Change 签到。 Code B. Minimize the Permutation 题意: 给出一个$1$~$n$的排列,现在对于一个位置$i$,可以交换$a_i,a_{i+1}$。但要满足每个位置只能交换一次且最多交换$n 1$次。 输出操作过
阅读全文
摘要:"传送门" C K th Substring 题意: 给出一个字符串,求其第$k$小子串,$k\leq 5$。 思路: 因为$k$很小,所以答案长度不可能超过$k$。所以直接将所有的长度不超过$k$的串拿出来排序就行。 Code cpp include define MP make_pair def
阅读全文
摘要:"传送门" 题意: 给出一个只含前$20$个字符的字符串,现在可以选择一段区间进行翻转,问区间中字符各不相同时,最长长度为多少。 思路: 首先,容易将题意转换为选择两个字符各不相同的区间,然后长度相加取最大; 注意到字符串中满足条件的区间长度不超过$20 n$,那么处理出所有区间,现在任务即为找到两
阅读全文