AGC035D】的更多相关文章

AGC035D Add and Remove 题意 给出\(n\)个数,每次删除一个不在两端的数,然后把它的权值加到相邻的两个数上. 问操作\(n-2\)次后,所剩的两数之和的最小值 \(n\le18\) 题解 暴力存储每一个数的状态肯定不行. 考虑计算每一个数被计算了多少次. 可以发现\(1\)和\(n\)一定只被计算了1次 最后一个被消除掉的数应只被计算\(2\)次 可以发现,如果左端点被计算\(x\)次,右端点被计算\(y\)次 那么左右端点之间最后一个被消除的数被计算了\(x+y\)次…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定 N 张排成一行的卡片,第 i 张卡片上面写着 Ai. 重复以下操作,直到只剩下两张卡片. 取出卡片 i,将卡片 i 左边的卡片与卡片 i 右边的卡片的 A 加上 Ai. 求最后剩下的两张卡片的 A 的可能的最小和. Constraints 2≤N≤18, 0≤Ai≤10^9(1≤i≤N) Input 输入格式如下: N A1 A2 ... AN Outpu…
题目链接 大意 给出\(N\)个数的序列,每次操作可以选择连续的三个数,将中间的那个数抽出,将另外两个数的数值加上中间那个数的数值. 一直执行以上操作直到只剩最后两个数,求最后两个数的所有可能的和的最小值. (\(1\le N\le 18\)) 思路 由于\(N\)的奇妙的范围,易想到状态压缩与双向BFS,然而,该题选数顺序对状态的限制太大,故不能. 考虑分治解决,枚举一段区间最后选的数,将其分为两段区间. 设该段区间左端点对答案的贡献为\(X\)次,右端点对答案的贡献为\(Y\)次. 那么在只…