Educational Codeforces Round 66 (Rated for Div. 2) D. Array Splitting

https://codeforces.com/problemset/problem/1175/D

题意:给出数组a和一个正整数k,将a划分成k个连续的非空子数组,每个子数组从左到右编号1到k,然后花费是每个数乘以其子数组编号的和,求最大花费。

思路:很有意思的贪心 + 前缀和。
假设第i次的分割位置为p[i],前缀和数组是sum[i]
cost = 1 * s[p1] + 2 *(s[p2] - s[p1]) + 3 * (s[p3] - s[p2])
+…+ k * s[pk];
展开得:
cost = k * s[pk] - (s[p1] + s[p2] +… + s[pk-1]);
为了使cost尽可能大,我们需要使前缀和的前k - 1项尽可能小;
所以我们将前缀和排序取前k - 1项就可以。
这里要注意的是,s[pk]其实就是s[n],s[n]是必选的,所以排序的时候不能将s[n]算进去。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

typedef long long ll;

const int maxn = 3e5 + 10;

int a[maxn];
ll sum[maxn];

int main()
{
    int n, k;
    cin >> n >> k;
    for(int i = 1;i <= n; i++)
    {
        cin >> a[i];
        sum[i] = sum[i - 1] + a[i];
    }
    sort(sum + 1, sum + n);
    ll ans = k * sum[n];
    for(int i = 1;i < k; i++)
        ans -= sum[i];
    cout << ans << endl;
    return 0;
}

内容概要:《机器人综合基础实践教程》(入门篇、提高篇)涵盖了机器人基础构建、编程控制、传感器应用等多个方面。教程从机械零件简介入手,逐步介绍主控板编程环境的配置,随后通过一系列实验引导读者动手实践,包括驱动轮模块、双轮万向车、红外启动小车、带传动模块、履带机器人、红绿灯等实验。这些实验不仅帮助读者理解基本原理,还涉及高级应用如蓝牙电子温度计、语音识别、双轮小车平衡、蓝牙排爆机器人WiFi视频排爆等。教程旨在培养读者的空间构型能力、编程技巧综合调试能力,为机器人技术的实际应用打下坚实基础。 适用人群:具备一定编程基础技术兴趣的学生、教师及爱好者,特别是对机器人技术感兴趣的初学者中级学习者。 使用场景及目标:①帮助学生理解机器人基本原理,掌握机械零件组装编程控制;②通过实际操作,提升编程调试技能;③为机器人竞赛、项目开发创新实践提供理论实践指导;④培养创新思维解决实际问题的能力。 其他说明:教程不仅提供详细的实验步骤代码示例,还配有丰富的参考资料光盘课件,确保学习者能够全面理解掌握知识点。此外,教程强调实践操作的重要性,鼓励学习者通过动手实验加深理解,培养独立思考解决问题的能力。
内容概要:本文档详细介绍了使用Visio绘制ER图的方法,首先阐述了ER图的三个基本要素:实体、属性、关系,并解释了Visio中没有现成模板的问题以及解决方案,即通过自定义模具的方式添加所需的图形元素。接着描述了绘制ER图的两种主要方式:手动绘制利用Visio的反向工程技术。对于手动绘制,文中以留言板数据库为例,具体演示了从创建实体、设置属性到建立实体间关系的全过程。而对于反向工程,则强调了其高效性,支持多种数据库类型,如Access、MSSQL、Excel等,并给出了详细的步骤说明,包括设置反向工程参数、选择数据库路径、指定生成的表等关键环节。 适合人群:适合有一定数据库基础知识,尤其是正在学习或从事数据库设计工作的人员,包括但不限于数据库管理员、软件开发者、系统分析师等。 使用场景及目标:①帮助用户掌握Visio绘制ER图的基本技能,能够独立完成简单数据库的ER图设计;②利用Visio的反向工程功能快速生成复杂数据库的ER图,提高工作效率;③理解实体、属性、关系三者之间的逻辑关联,为后续数据库设计提供理论依据。 阅读建议:建议读者按照文档中的步骤逐步操作练习,同时结合实际项目需求,灵活运用所学知识,特别是对于反向工程部分,可以尝试不同类型的数据库以加深理解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值