摘要:
题意: 求所给出长度为 N 的最长上升子序列长度 ""思路: (1) $O(n^2)$的 动态转移: 设$dp[i]$表示以$i$结尾的最长单调子序列,那么当$arr[i] arr[j]时$ $dp[i]=max(dp[j]+1,dp[i]) (j\in[1,i))$ (2) $O(n^2)$ $d 阅读全文
摘要:
题意: 给出两个字符串,求出最长的公共子序列大小。 思路: 算是最经典的LCS问题吧。 设 $X=(x_1,x_2,.....x_n) 和 Y=(y_1,y_2,.....y_m)$ 是两个序列,将 X 和 Y 的最长公共子序列记为$lcs(X,Y)$ ,找出$lcs(X,Y)$就是一个最优问题 然 阅读全文
摘要:
题意: 题意相当于:给你六种物品,每种物品对应有 $num[i] (i为物品编号)$个,同时第 $ith$ 物品价值为&i&,现在问你能否将这些物品分成两堆,使得每堆的价值相同 思路: 我们可以用dfs去暴力搜索,当然这里使用多重背包的想法。即有 N 个物品 对应每个物品都有对应的 体积,能否找到任 阅读全文
摘要:
"原题链接" 题意: 给你两个数 $N,M$ 你要求出 符合条件 $GCD(X,N) =M,\space (1 include include include include include define IOS ios::sync_with_stdio(0); cin.tie(0); define 阅读全文
摘要:
题意: 给你一个范围 $(1 define IOS ios::sync_with_stdio(0); cin.tie(0); define accept 0 define mp make_pair using namespace std; typedef long long ll; typedef 阅读全文
摘要:
题意: 给出一个范围 $(l,r)$ , 要求计算该范围中 满足 其中连续两位不为62, 并且不包含4 的符合条件个数。 思路: 在用数位dp写之前发现自己以前用暴力的方法过去了....(就直接枚举然后除余 4 和 64)所以明明做过一道数位dp的题,却对数位dp毫无印象.. 关于数位dp:在数位上 阅读全文
摘要:
题意: 即是给你一个容量M的包,有N件物品,每件物品有分别对应的 价值value 以及 重量weight .然后在不超过该背包容量的情况下能得到的最大价值为多少? 思路: 由于这是最基础的问题,所以就记录当对 01背包状态转移方程式的 理解。 对于动态规划来说,首先要知道我们要确定哪些状态量。然后再 阅读全文
摘要:
原题链接: 题意: 给你一个长为 $N$的序列。你要将其分为 $M$ 段不重叠的连续区间 , 使得这些区间的总和最大。 思路: 我们先从状态来看。一般关于序列问题我们很容易想到 以第 $j$ 个数结尾的状态。然后再结合这道题的 $M$ 个不同区间,我们可以再设一个 区间个数为 $i$ 的状态。即最后 阅读全文
摘要:
题意: 给你N个结点的树,每条边的权值,以及一个起点位置S。 你有两个robot ,可以同时在树上跑。每跑过一条边就要花费一条边权值的油费(要重复i计算)。现在你要把整棵树跑完,问至少要花费多少。 思路: 做这道题的时候想到了之前做过19牛客暑期训练赛的一道题,第四场A-meeting(签到题),两 阅读全文
摘要:
题意: 给你 N 个点以及 N-1 条边将所有点两两连接(树),每个点都有对应编号。现在给你k个点,你要求出这个树上的某个点使得 所给两个点到该点的时间(经过的边数)其中最大的那个为 所能得到的所有答案的最小值。 思路: 如果仅仅是两个点,那么我们用dijkstra跑一下就可以得到。但是这是k点,切 阅读全文