摘要:
题目链接:51Nod 1432 独木舟 题目大意: 题解: 按体重从小到大排序,两个指针分别指向头尾,从最重的开始分配船只,他可以和当前最轻的坐船,如果重量超了就自己坐船。 #include <algorithm> #include <iostream> using namespace std; l 阅读全文
摘要:
题目链接:HDU 7108 Command Sequence 题目大意: 题解: 记录所有经过的点,对重复的点计算组合数。 #include <cstdio> #include <iostream> #include <map> using namespace std; #define LL lon 阅读全文
摘要:
题目链接:HDU 7105 Power Sum 题目大意: 题解: 易知$(x+1)^2-(x+2)^2-(x+3)^2+(x+4)^2=4$,所以可以令$n$对$4$取模,根据余数$0,1,2,3$取不同的$01$序列,后面加上$\frac{n}{4}$个“\(1001\)”即可。 #includ 阅读全文
摘要:
题目链接:LibreOJ 10163 Amount of Degrees 题目大意: 题解: 主要思想是进制转换。 一个数$x$转换为$b$进制可以表示为$x = a_0b0 + a_1b1 + a_2b^2 + ...$,题目要求的就是系数$a_0,a_1,a_2,...$中有$k$个$1$,其余 阅读全文
摘要:
题目链接:LibreOJ 10156 战略游戏 题目大意: 题解: 很明显是树形$dp$题。 设$dp[i][0/1]$表示第$i$个点不放/放士兵所需的最少士兵数。 如果当前节点不放士兵,子节点要放士兵;如果当前节点放士兵,子节点可放可不放。 状态转移方程为: \[ \left\{\begin{a 阅读全文
摘要:
题目链接:LibreOJ 10154 选课 题目大意: 题解: 树上的背包问题。 不妨给所有没有先修课程的课增加先修课程$0$,设$dp[i][j]$表示以$i$作为根的子树修读$j$门课获得的最大学分。 状态转移方程: \(dp[u][i] = max\{dp[u][i], dp[u][i - j 阅读全文
摘要:
题目链接:LibreOJ 2424 子串 题目大意: 题解: 设$dp[j][k]$表示字符串$A$判断到第$i$个字符且一定取第$i$个字符,组成字符串$B$的前$j$个字符,用了$k$个子串的方案数。 设$DP[j][k]$表示字符串$A$判断到第$i$个字符但不一定取第$i$个字符,组成字符串 阅读全文
摘要:
题目链接:计蒜客 T2091 传纸条 题目大意: 题解: 由题意可知两路不会相交,设$dp[i][j][k]\(表示下面的那条路走到\)(i,j)\(,上面那条路走到\)(k, i+j-k)$时好感程度的最大值,则状态转移方程为: \(dp[i][j][k] = max\{dp[i - 1][j][ 阅读全文
摘要:
题目链接:LibreOJ 2612 花匠 题目大意: 题解: 本题是求最长抖动子序列。 设$dp[i][0/1]$表示判断到第$i$位且第$i$位为下降/上升结尾的情况下最长抖动序列的长度。 分以下三种情况讨论: \(h[i]=h[i-1]\),则第$i$位可以替换掉第$i-1$位; \(h[i]> 阅读全文
摘要:
题目链接:计蒜客 T2033 换教室 题目大意: 题解: 膜拜出题人!!!状态转移方程写到吐血。。。 膜拜出题人!!!状态转移方程写到吐血。。。 膜拜出题人!!!状态转移方程写到吐血。。。 首先通过$Floyd$计算所有教室间的最短距离。 设$dp[i][j][0/1]$表示前$i$节课申请了$j$ 阅读全文