C. Line Empire

思路:本题的核心需要考虑:每次占领新的王国以后是否需要更换首都的位置?

只需要比较一下:更换军队位置的花费和更换后可以减少占领后续王国的花费进行比较,如果前者大就不换,后者大就换,这样总花费是最小的。

我们需要先预处理出 x i x_i xi​的前缀和。

更换位置的花费: 假如是从第 p r e pre pre个王国占领到第 i i i个王国, w 1 = a b s ( c [ i ] − c [ p r e ] ) ∗ a w1 = abs(c[i] - c[pre]) *a w1=abs(c[i]−c[pre])∗a

假如更换以后可以减少占领后续王国的花费: w 2 = ( n − i ) ∗ b ∗ ( c [ i ] − c [ p r e ] ) w2 = (n - i) * b * (c[i] - c[pre]) w2=(n−i)∗b∗(c[i]−c[pre])

只要比较这两个的花费然后选择方案即可。

LL w[N], sum[N];void solve()
{cin >> n >> a >> b;for(int i = 0; i <= n; i ++ ) sum[i] = 0;int pre = 0;for(int i = 1; i <= n; i ++ ){cin >> w[i];sum[i] = sum[i - 1] + w[i];}LL ans = 0;for(int i = 1; i <= n; i ++ ){ans += abs(w[i] - w[pre]) * b;if((w[i] - w[pre]) * b * 1ll * (n - i) > a * abs(w[i] - w[pre])){ans += a * abs(w[i] - w[pre]);pre = i;}}cout << ans << endl;
}

Codeforces Round #782 (Div. 2) C. Line Empire相关推荐

  1. Codeforces Round #782 (Div. 2) A~D

    Codeforces Round #782 (Div. 2) A. Red Versus Blue 题意:红队和蓝队进行了 n n n次比赛.用一个长度为 n n n的字符串表示每场的胜负情况.R代表 ...

  2. Codeforces Round #782 (Div. 2)

    咕咕咕咕咕 前段时间去打华为软挑了,所以停了一段时间的训练,嘤嘤嘤 这场本来要打,然后十分钟写A写bug了,于是玩游戏去了-- 早上vp了一下,下课了就溜回去睡觉了,下午把c做了,d还没看,回头看一下 ...

  3. Codeforces Round #782 (Div. 2) ABCD

    打昆明打傻了,不会写题了QWQ A - Red Versus Blue 要求连续的 R R R的数量最少,也就是用 B B B尽可能的将 R R R隔开,显然 b b b个 B B B最多分成 b + ...

  4. [cf]Codeforces Round #782 (Div. 2)

    目录 前言 A.Red Versus Blue code B. Bit Flipping code C Line Empire code D.(完全不会,蹲大佬的题解) 前言 传送门 : (那天人们又 ...

  5. Codeforces Round #782 (Div. 2) A-D题解

    A. Red Versus Blue 每一次循环都计算R和B的比例,然后输出t个R,一个B,每次输出都判断是否结束 #include <iostream> #include <alg ...

  6. Codeforces Round #782 (Div. 2)-D. Reverse Sort Sum(树状数组)

    题目链接:Problem - D - Codeforces 题意:给定一个 01 序列 ,对  区间分别进行递增排序,得到  个序列,现给定  序列, ,即所有序列第  位的和.求给定 序列所对应的原 ...

  7. Codeforces Round #297 (Div. 2)E. Anya and Cubes 折半搜索

    Codeforces Round #297 (Div. 2)E. Anya and Cubes Time Limit: 2 Sec  Memory Limit: 512 MB Submit: xxx  ...

  8. Codeforces Round #297 (Div. 2)C. Ilya and Sticks 贪心

    Codeforces Round #297 (Div. 2)C. Ilya and Sticks Time Limit: 2 Sec  Memory Limit: 256 MB Submit: xxx ...

  9. [CF]Codeforces Round #529 (Div. 3)

    [CF]Codeforces Round #529 (Div. 3) C. Powers Of Two Description A positive integer xx is called a po ...

最新文章

  1. 使用iso文件安装双系统linux,Win7下使用EasyBcd安装Ubuntu(iso文件)双系统
  2. Entity Framework中使用IEnumerableT、IQueryableT及IListT的区别
  3. 《大型网站服务器容量规划》一1.1 容量规划背景
  4. Java集合从菜鸟到大神演变
  5. python输出子列表_python利用递归函数输出嵌套列表的每个元素
  6. 计算机背景为什么总是黑色,电脑背景变成黑色的了是为什么
  7. UVA10739 String to Palindrome【记忆化搜索+DP】
  8. 实现二叉树的基本操作(Java版)
  9. 23hh小说网——爬虫0.1python
  10. apache+php+mysql常见集成环境安装包
  11. 2021年北京人大附中高考成绩查询,2021北京市地区高考成绩排名查询,北京市高考各高中成绩喜报榜单...
  12. 服务器装系统步骤图解win7,win7安装系统图解教程
  13. html唯美登录+樱花落下实现(复制即用)
  14. php源码之路第一章(环境配置及常用代码)
  15. 谈谈#define xxxx(x,y) x##y
  16. 大数据的5大关键技术点
  17. 长城信息IPO过会:年营收13.4亿 中国电子控制77%股权
  18. 分布式高可靠:负载均衡
  19. 【C++】this 和 常量成员函数
  20. 怎样在一个Oracle数据库中建立多个实例

热门文章

  1. c 语言 pthread_create_【励达外语】第八篇 语言学习的5个关键期(上)
  2. 怎样做搜索引擎优化_您可以做的事情可以使您的博客更加优化搜索引擎
  3. 处理安装工商银行U盾后电脑不停的提示插入gemgpk智能卡的终极解决方法
  4. windows 10放大125%后字体模糊 如何设置
  5. MATLAB函数——minmax()
  6. csdn搬迁至博客园
  7. 深圳市信息服务业区块链协会为理事单位“陀螺财经”授牌
  8. C语言中的字符函数和字符串函数
  9. 32位机器和64位机器的区别
  10. python模拟乘客进站流程