### 题目链接 ### 分析: 1.用 vector<int> v[i] 来存 i 城堡, s 个对手所安排的士兵数量. 2.设 dp[i][j] 表示 i 城堡前,在当前最大派兵量为 j 时所能获得的最大价值. 3.不难想到的是,遍历 s 个对手,再用两个 for 遍历一下该城堡中各个对手的派兵量.然后对于能派的就派去看看能否更新 dp 值. 4.再者我们考虑贪心思想:若第 i 个城堡中, A 选手派出 a 个兵,那至少需要派 2 * a + 1个兵才能对答案有贡献:再者若 B 选手派出 …
题目链接 环形均分纸牌. 设平均数为\(ave\),\(g[i]=a[i]-ave\),\(s[i]=\sum_{j=1}^ig[i]\). 设\(s\)的中位数为\(s[k]\),则答案为\(\sum |s[i]-s[k]|\) 博主太菜,无法给出证明. #include <cstdio> #include <algorithm> using namespace std; const int MAXN = 1000010; long long sum, ans, a[MAXN],…