摘要:
题目大意:给定一个长度为 N 的序列,每个点有两种状态 1/0,表示占有和空闲,现支持 first fit 查询是否有一段连续的长度为 X 的空闲子序列和区间赋值操作。 题解:get到了线段树新技能。。qwq 区间赋值操作和其他线段树一样,维护标记即可。 查询是否有一段连续的长度为 X 的空闲子序列 阅读全文
摘要:
题目大意:给定一个长度为 N 的序列,每次可以合并相邻的两个元素,代价是两者中较大的值,合并之后的值也为两者较大的值,求合并 N 1 次后的最小代价是多少。 题解: 除了最大值以外,每个值均只会被合并一次,合并的代价一定是这个值左边最大值和右边最大值中较小的那一个。问题转化成了如何求解每个元素左边和 阅读全文
摘要:
题目大意:给定一个长度为 N 的序列,现选出 M 个点组成一个集合,求这 N 个点到这个集合的最近距离的和是多少。 题解: 状态设计为 dp[i][j] 表示前 i 个点中选出 j 个点的最近距离和是多少,转移显然要枚举上一个选的点在哪里,即:$dp[i][j]=min(dp[k][j 1]+cos 阅读全文
摘要:
题目有点难描述,内容请直接看原题。。 题解: 可以发现人在关路灯时无论走什么样的路径,从宏观上来看被关的灯总是构成一段包含初始点的连续区间。比如要关掉下标为 l (l using namespace std; const int maxn=51; typedef long long LL; int 阅读全文