2024/2/4 备战蓝桥杯 5-1 前缀和

目录

求和

0求和 - 蓝桥云课 (lanqiao.cn)

可获得的最小取值

0可获得的最小取值 - 蓝桥云课 (lanqiao.cn)

领地选择

P2004 领地选择 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)


求和

0求和 - 蓝桥云课 (lanqiao.cn)

思路:先对公式进行合并同类相,然后用前缀和

完整代码:

#include <bits/stdc++.h>
#define int long long
const int N = 2e6 + 10;
int a[N], sum[N];
int ans;
signed main() {
    int n;
    std::cin >> n;
    for (int i = 1; i <= n; i++) {
        std::cin >> a[i];
        sum[i] = a[i] + sum[i - 1];
    }
    for (int i = 1; i <= n; i++) {
        ans += a[i] * (sum[n] - sum[i]);
    }
    std::cout << ans;
    return 0;
}

可获得的最小取值

0可获得的最小取值 - 蓝桥云课 (lanqiao.cn)

思路:

第一个情况是取数组前面两个数,第二个情况是取数组末尾的一个元素,如果循环k次一一比较的话,那么{1,1,1,1,1,1,3},若k=3,最小值就是6,这个是贪心的思想,可是最小值应该是5(3+1+1)。

如果第一个情况做 p 次的话,第二个情况就做 k-p 次

此时的总和为

所以遍历一遍p的值 

完整代码:

#include <bits/stdc++.h>
#define int long long
const int N = 2e5+10;
int a[N],s[N];
signed main()
{
    int n,k;
    std::cin >> n >> k;
    for(int i = 1;i <= n;i ++)
    {
        std::cin >> a[i];
    }
    std::sort(a+1,a+1+n);
//    for(int i = 1;i <= n;i ++)
//    {
//        std::cout<<a[i]<<" ";
//    }
//    std::cout<<"\n";
    for(int i = 1;i <= n;i ++)
    {
        s[i]=s[i-1]+a[i];
    }
//    for(int i = 1;i <= n;i ++)
//    {
//        std::cout<<s[i]<<" ";
//    }
//    std::cout<<"\n";
    int ans=1e18;
    for(int i = 1;i <= k;i ++)
    {
        ans=std::min(ans,s[n]-s[n-(k-i)]+s[2*i]);
    }
    std::cout<<ans;
    return 0;
}

领地选择

P2004 领地选择 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

思路:

这道题用暴力会超时,先用一个数组记录二维前缀和,再来遍历

二位前缀和

从原点开始:s[i,j]=s[i,j-1]+s[i-1,j]-s[i-1,j-1]+a[i,j]

(x1,y1),(x2,y2)中的所有数之和为

s[x2,y2]+s[x1-1,y1-1]-s[x1-1,y2]-s[x2,y1-1]

完整代码:

#include <bits/stdc++.h>
#define int long long
const int N = 1e3+10;
int a[N][N];
int sum[N][N];
signed main()
{
    int n,m,c;
    std::cin >> n >> m >> c;
    for(int i = 1;i <= n;i ++)
    {
        for(int j = 1;j <= m;j ++)
        {
            std::cin >> a[i][j];
            sum[i][j]=a[i][j]+sum[i][j-1]+sum[i-1][j]-sum[i-1][j-1];
        }
    }
    int maxx=-1e18,maxy=-1e18,ans=-1e18;
    for(int i = 1;i <= n-c+1;i ++)
    {
        for(int j = 1;j <= m-c+1;j ++)
        {
            int x1=i,y1=j,x2=i+c-1,y2=j+c-1;
            int num=sum[x2][y2]+sum[x1-1][y1-1]-sum[x1-1][y2]-sum[x2][y1-1];
            if(num>ans)
            {
                ans=num;
                maxx=x1;
                maxy=y1;
            }
        }
    }
    std::cout<<maxx<<" "<<maxy;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/371843.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅压缩、深压缩、双引擎、计算机屏幕编码……何去何从?

专业视听领域尤其显示控制和坐席控制领域&#xff0c;最近几年最激动人心的技术&#xff0c;莫过于分布式了。 分布式从推出之日就备受关注&#xff1a;担心稳定性的&#xff0c;质疑同步性能的&#xff0c;怀疑画面质量的…… 诚然&#xff0c;我们在此前见多了带着马赛克的…

windows安装Visual Studio Code,配置C/C++运行环境(亲测可行)

一.下载 Visual Studio Code https://code.visualstudio.com/ 二.安装 选择想要安装的位置: 后面的点击下一步即可。 三.下载编译器MinGW vscode只是写代码的工具&#xff0c;使用编译器才能编译写的C/C程序&#xff0c;将它转为可执行文件。 MinGW下载链接&#xff1a;…

day31 JS执行机制

目录 前言同步和异步JS执行机制 前言 JavaScript语言的一大特点是单线程。 JavaScript是为处理页面中用户的交互&#xff0c;以及操作DOM而诞生的。比如对某个DOM元素进行添加和删除操作&#xff0c;不能同时进行&#xff0c;应该先进行添加再继续删除。 示例&#xff08;解…

【日常总结】SourceTree 1.5.2.0 更换用户名称和密码

一、场景 二、问题 三、解决方案 > 方案一&#xff1a;删除缓存文件 > 方案二&#xff1a;更新最新版本&#xff0c;可以直接修改密码&#xff08;推荐&#xff09; 方案一&#xff1a;删除缓存文件 Stage 1&#xff1a;设置显示隐藏文件 Stage 2&#xff1a;打开…

基于时频分析的SAR目标微波视觉特性智能感知方法与应用

源自&#xff1a;雷达学报 作者&#xff1a;黄钟泠, 吴冲, 姚西文 “人工智能技术与咨询” 发布 摘 要 合成孔径雷达(SAR)目标识别智能算法目前仍面临缺少鲁棒性、泛化性和可解释性的挑战&#xff0c;理解SAR目标微波特性并将其结合先进的深度学习算法&#xff0c;实现高效…

Springboot写一个对接钉钉机器人的小插件

钉钉机器人 有时候我门需要监控各种事件&#xff0c;需要机器人给我发给提醒 如&#xff1a;git代码交接&#xff0c;代码合并&#xff0c; 服务器异常捕获&#xff0c;。。。。 参照钉钉给我们的开发文档&#xff0c;可以发现对接起来是非常简单哈哈 这是我写的小插件以及例子…

内衣迷你洗衣机什么牌子好?口碑最好的小型洗衣机推荐

随着人们的生活水平的提升&#xff0c;越来越多小伙伴来开始追求更高的生活水平&#xff0c;一些智能化的小家电就被发明出来&#xff0c;而且内衣洗衣机是其中一个。现在通过内衣裤感染到细菌真的是越来越多&#xff0c;所以我们对内衣裤的清洗频次会高于普通衣服&#xff0c;…

大数据知识图谱之深度学习——基于BERT+LSTM+CRF深度学习识别模型医疗知识图谱问答可视化系统

文章目录 大数据知识图谱之深度学习——基于BERTLSTMCRF深度学习识别模型医疗知识图谱问答可视化系统一、项目概述二、系统实现基本流程三、项目工具所用的版本号四、所需要软件的安装和使用五、开发技术简介Django技术介绍Neo4j数据库Bootstrap4框架Echarts简介Navicat Premiu…

【开源】JAVA+Vue+SpringBoot实现二手车交易系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 二手车档案管理模块2.3 车辆预约管理模块2.4 车辆预定管理模块2.5 车辆留言板管理模块2.6 车辆资讯管理模块 三、系统设计3.1 E-R图设计3.2 可行性分析3.2.1 技术可行性分析3.2.2 操作可行性3.2.3 经济…

【【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏(附项目源码)

最终效果 文章目录 最终效果前言导入AI导航系统导航烘培添加羊添加捕食者动画控制随着地面法线旋转在地形上随机生成动物不同部位颜色不同最终效果源码完结前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第24篇中,…

windows10 利用DDNS-GO解析IPV6 IPV4 阿里云 腾讯云 华为云

这里写目录标题 [工具包DDNS-GO Windows 版](https://github.com/jeessy2/ddns-go/releases)创建ddns-go windows服务打开浏览器 输入127.0.0.1:9876 就可以使用ddns-go解析ipv4 或者 IPV6 了创建的服务已经在windows的服务管理里面自动启动了 工具包DDNS-GO Windows 版 创建dd…

docker proxy 【docker 代理】

第一种 创建代理配置文件 mkdir -p /etc/systemd/system/docker.service.d/ cat <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf Environment"HTTP_PROXYhttp://192.168.21.101:7890" Environment"HTTPS_PROXYhttp://192.168.21.1…

Python更换国内pip源详细教程

文章目录 一、国内常用镜像源二、临时使用三、永久修改配置1.pycharm终端命令行操作2.Windows平台图形化操作3.MacOS、Linux 平台 四、安装和导出项目依赖包1.使用pip命令自动生成requirement.txt项目依赖的模块2.从文件中一键安装项目中使用到的所有依赖包 五、拓展1.pip下载第…

13. Threejs案例-绘制3D文字

13. Threejs案例-绘制3D文字 实现效果 知识点 FontLoader 一个用于加载 JSON 格式的字体的类。 返回 font&#xff0c;返回值是表示字体的 Shape 类型的数组。 其内部使用 FileLoader 来加载文件。 构造器 FontLoader( manager : LoadingManager ) 参数类型描述managerLo…

音频二维码怎么制作出来的?支持多种格式音频生码的方法

怎么把一个音频的文件做成二维码图片呢&#xff1f;在日常工作和生活中&#xff0c;有很多的场景会需要使用音频类型的文件来展示内容&#xff0c;比如常见的英语听力、课程、听书等类型的内容&#xff0c;现在都可以用二维码展示。而且现在生成音频二维码的方法也很简单&#…

设置 相关

记录使用过程中做的设置相关事宜。方便后续查询 vscode如何自动生成html格式&#xff1a; vscode快速生成html模板 --两种方法&#xff0c;亲测有用_vscode自动生成html模板-CSDN博客 使用第二个方式。存储html格式后缀。输入&#xff01;&#xff0c;vscode自动补全。 安装…

uniapp中使用EelementPlus

uniapp的强大是非常震撼的&#xff0c;一套代码可以编写到十几个平台。这个可以在官网上进行查询uni-app官网。主要还是开发小型的软件系统&#xff0c;使用起来非常的方便、快捷、高效。 uniapp中有很多自带的UI&#xff0c;在创建项目的时候&#xff0c;就可以自由选择。而E…

自动驾驶IPO第一股及商业化行业标杆 Mobileye

一、Mobileye 简介 Mobileye 是全球领先的自动驾驶技术公司&#xff0c;成立于 1999 年&#xff0c;总部位于以色列耶路撒冷。公司专注于开发视觉感知技术和辅助驾驶系统 (ADAS)&#xff0c;并在自动驾驶领域处于领先地位。Mobileye 是高级驾驶辅助系统&#xff08;ADAS&#…

Container 命令ctr、crictl 命令

1、 Containerd和Docker的架构区别 Docker vs. Containerd&#xff1a; 2、ctr & crictl的区别 ctr是containerd的一个客户端工具 crictl 是 CRI 兼容的容器运行时命令行接口&#xff0c;可以使用它来检查和调试 Kubernetes 节点上的容器运行时和应用程序 crictl 则直接对…

[MFC] MFC消息机制的补充

之前写了[MFC] 消息映射机制的使用和原理浅析&#xff0c;还有些需要补充的&#xff0c;都记在这里。 MFC 消息的分类 MFC消息分为系统消息和自定义消息。 图片来源&#xff1a;C语言/C教程 大型源码案例分析&#xff1a;MFC消息系统的代码解析 易道云编程 系统消息分为窗口…