06 2019 档案
摘要:"传送门" 解法: (下面运用到了这个数据 aabaab aab) 虽然是字符串 但是发现就算是数字也是一样的 看上去像是字符串匹配 ~~但是只是看上去~~ 这题做法考虑dp 设dp[i][j][k]表示到A中i位置时匹配到B中j位置分成k段得到的方案数 (此时A[i]不要求等于B[j]) 我们发现
阅读全文
摘要:"传送门" 解法: 常用套路 二分答案 二分 “最后得到的最短长度的最大值” 再贪心地求此时需要拿走至少几个石头 这个贪心策略很简单 从起点开始取 把距离该点长度小于此时最短长度的点都删除 累加起来 最后就得到了此时最少拿走的石头数量 注意:因为终点不可删 所以取到终点前的一段长度要直接累加进答案
阅读全文
摘要:"传送门" 解法: 先不考虑0环 很容易想到dp 状态转移方程也很容易想到 设 $d[i]$为n到i的最短路长度 当然此时是反向图 反向图是为了防止1能到达的点到达不了n而出错 $dp[i][j]$表示到达i点距离为$d[i]+j$的路径个数 则 x y有路径 $dp[x][k]=dp[y][k (
阅读全文
摘要:"传送门" 这道题对我算是意义非凡 毕竟这是我独立自主AC的第一道动规较难题 解法: 这道题想想就想到了树上背包 ~~于是我 爽快地温习了一下树上背包 爽快地写完代码 爽快地得了72分。。。~~ 然后我才发现 这道题tm的不是考树上背包 而是考特判 先说说背包咋写 设dp[i][j]表示第i个节点的
阅读全文
摘要:"传送门" ~~先喷一波出题人~~ ~~“第P+T 1分钟结束”应该改为“第P+T 1分钟末结束”~~ ~~还有工作时间是在 第N分钟末 结束~~ ~~不然这题样例都是错的~~ 解法: 考虑dp 因为要优先选先来的任务 所以正着搜有后效性 于是考虑倒着搜 设dp[i]为第i分钟初到第n分钟末最多可以
阅读全文
摘要:"传送门" 题意: 简单说 就是给个序列 求和最大的两段 且序列头可接尾 解法: 若不考虑环 则可对每一个位置 分成其前一段和其后一段 求其前一段与后一段的最大最段和相加 找到最大的值 在考虑环的情况 可以把原问题转化为求中间最小的两段 再用序列全部的和 减去 最小的两段 ~~为了偷懒~~ 直接将序
阅读全文
摘要:"传送门" 解法: |a11|a12|a13| |: |: |: | |a21|a22|a23| |a31|a32|a33| 我们发现移走一个点只会影响 该点所在行 以及最后一列 所以很容易能想到维护每一行以及最后一列 每次删两个点,加两个点 并用动态开点线段树维护 删点方法: 对线段树中每个节点处
阅读全文
摘要:"传送门" 解法: 我们可以通过枚举判断点与点以及上下表面是否联通 并存入并查集 最后判断上下表面是否在同一集合中 代码: ~~~ include include include include include include include include define inf 200000000
阅读全文
摘要:"传送门" 解法: 此题能很容易想到用区间dp求 因为要最大值与最小值 所以设两个数组maxn[i][j][t],minn[i][j][t] 分别表示 位置i到位置j的数 分成t份和的乘积最大值、最小值 那么 t=1为边界 此时maxn[i][j][1]=minn[i][j][1]=a[i]+a[i
阅读全文

浙公网安备 33010602011771号