备战蓝桥杯---基础算法刷题2

题目有一点水,不过还是有几个好题的,我在这分享一下:

很容易想到先往最高处跳再往最低处跳,依次类推,那怎么保证其正确性呢?

证法1. 在此,我们从0开始,假设可以跳到a,b,c(a<b<c).

那么如果跳到a,体力值(不管平方项)为a^2+(a-b)^2+(b-c)^2

跳到b为b^2+(b-a)^2+(a-c)^2,跳到c为c^2+(c-a)^2+(a-b)^2

我们展开易得跳到c最合适,我们也易将该结论进行推广为:应从先从地面跳到最高柱子。

然后在把最高的当成地面,依次类推即可。

证法2.有h1,h2,....hn个他们高度依次递增,如果第一次跳不到hn,那么我们分两种情况:

1.若hn最后被跳到,那么我们把hn与第一次跳到的位子然后按照反方向跳,这样就增加了hn^2-hi^2,更优。

2.若hn在中间位置被跳到,假设它下一步为hq,然后从第一次跳到的 hp到 hn​ 的跳跃全程反转,第一次跳到的 下一步跳到hq,这样就增加了hn^2+(hp-hq)^2-hp^2-(hn-hq)^2>0,因此更优。

下面为AC代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,a[500],b[500];
bool cmp(int a,int b){return a>b;
}
bool cmp1(int a,int b){return a<b;
}
signed main(){cin>>n;for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=n;i++) b[i]=a[i];sort(a+1,a+n+1,cmp);sort(b+1,b+n+1,cmp1);int sum=0;int j=1;for(int i=1;i<=(n+1)/2;i++){sum+=(a[i]-b[i-1])*(a[i]-b[i-1]);sum+=(a[i]-b[i])*(a[i]-b[i]);}cout<<sum;
}

接题:

我们容易想到:从大到小轮着就值最大,比如3个3,3个2,2个1,按照32132132肯定是最优。

下面给出正确性证明(来自某大佬题解):

我们不妨考虑答案的上界:

对于3,最多出现3+3+2次,即其他元素可以提供次数但要取min,于是我们可以得出:

对于元素n,他最多可以选\sum min(ai,an);

对于n和n-1,同理,它可以选\sum min(ai,max(an,an-1))

对于其他ak ,它可以选\sum min(ak,max(an,an-1,...,ak))

而按照刚才的策略即可取到上界。

清楚了策略的来源,我们就不用真的去模拟实现,我们从每一个数的贡献出发,用前缀和就巧妙地实现了,下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
long long n,a[100010],sum[100010],cnt=0;
int main(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];int x=0;for(int i=n;i>=1;i--){if(x>=a[i]){cnt+=sum[a[i]];continue;}for(int j=x+1;j<=a[i];j++){sum[j]=sum[j-1]+i;}x=a[i];cnt+=sum[a[i]];}cout<<cnt;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源项目】超经典实景三维数字孪生城市CIM/BIM公共安全案例

飞渡科技数字孪生城市安全监管平台&#xff0c;基于数字孪生、云计算、遥感技术、数字成像等高度智能化技术&#xff0c;整合城市安全概况、安全生产和联动指挥三大模块。平台全面监测城市安全数据&#xff0c;迅速响应紧急事件&#xff0c;以“数智化”构建城市新安全格局。 通…

2024年2月16日优雅草蜻蜓API大数据服务中心v1.1.1大更新-UI全新大改版采用最新设计ui·增加心率计算器·退休储蓄计算·贷款还款计算器等数接口

2024年2月16日优雅草蜻蜓API大数据服务中心v1.1.1大更新-UI全新大改版采用最新设计ui增加心率计算器退休储蓄计算贷款还款计算器等数接口 更新日志 前言&#xff1a;本次更新中途跨越了很多个版本&#xff0c;其次本次ui大改版-同步实时发布教程《带9.7k预算的实战项目layuiph…

力扣--动态规划1027.最长等差数列

思路分析&#xff1a; 使用动态规划的思想&#xff0c;定义二维数组dp&#xff0c;其中dp[i][j]表示以nums[i]为结尾&#xff0c;公差为(j-1000)的等差数列长度。为了适应负数的情况&#xff0c;将公差的范围设为[-1000, 1000]&#xff0c;并且加上1000作为数组索引。 初始化r…

用于模拟颗粒流的直接强迫浸没边界法 An immersed boundary method with direct forcing 笔记

原文&#xff1a;Uhlmann, Markus. “An immersed boundary method with direct forcing for the simulation of particulate flows.” Journal of computational physics 209.2 (2005): 448-476. 目录 概述引言问题表述固体对流体的作用欧拉和拉格朗日变量的空间离散体积力的表…

音视频数字化(数字与模拟-电视)

上一篇文章【音视频数字化(数字与模拟-音频广播)】谈了音频的广播,这次我们聊电视系统,这是音频+视频的采集、传输、接收系统,相对比较复杂。 音频系统的广播是将声音转为电信号,再调制后发射出去,利用“共振”原理,收音机接收后解调,将音频信号还原再推动扬声器,我…

qt-C++笔记之事件过滤器

qt-C笔记之事件过滤器 —— 杭州 2024-02-25 code review! 文章目录 qt-C笔记之事件过滤器一.使用事件过滤器和不使用事件过滤器对比1.1.使用事件过滤器1.2.不使用事件过滤器1.3.比较 二.Qt 中事件过滤器存在的意义三.为什么要重写QObject的eventFilter方法&#xff1f;使用QO…

2024.2.23 IO进程线程信号通道

思维导图 使用消息队列完成两个进程间相互通信 #include <myhead.h> //定义一个消息类型 struct msgbuf {long mtype;//消息类型char mtext[1024];//消息正文 }; #define MSGSIZE sizeof(struct msgbuf)-sizeof(long) int main(int argc, const char *argv[]) {//创建key…

INI 格式配置文件基础知识

前言 INI是英文“初始化”&#xff08;initialization&#xff09;的缩写&#xff0c;它是某些平台或软件上的配置文件的非正式标准&#xff0c;以节(section)和键(key)构成&#xff0c;常用于微软Windows操作系统中&#xff0c;这种配置文件的文件扩展名多为INI。INI文件被用来…

第十四章 Linux面试题

第十四章 Linux面试题 日志t.log(访问量)&#xff0c; 将各个ip地址截取&#xff0c;并统计出现次数&#xff0c;并按从大到小排序(腾 讯) http://192. 168200.10/index1.html http://192. 168.200. 10/index2.html http:/192. 168 200.20/index1 html http://192. 168 200.30/…

自定义神经网络四之编写自定义神经网络

文章目录 前言神经网络组件代码整体的项目结构Tensor张量Layers层NeuralNet神经网络Loss损失函数Optim优化器data数据处理train训练 神经网络解决实际问题实际问题训练和推理代码 总结 前言 自定义神经网络一之Tensor和神经网络 自定义神经网络二之模型训练推理 自定义神经网络…

MySQL多实例与Mycat分布式读写分离的架构实践

文章目录 1.Mycat读写分离分布式架构规划2.在两台服务器中搭建八个MySQL实例2.1.安装MySQL软件2.2.创建每个MySQL实例的数据目录并初始化2.3.准备每个实例的配置文件2.4.准备每个实例的启动脚本2.6启动每台机器的MySQL多实例2.7.为每个MySQL实例设置密码2.8.查看每个MySQL实例的…

力扣细节题:翻转二叉树

细节一&#xff1a;递归采用前序递归 细节二&#xff1a;采用交换节点而不是交换数据因为左右树交换的同时左右树的所有子节点都要交换 细节三&#xff1a;采用外置函数因为return如果在本函数内操作会存在必须返回空指针的问题 /*** Definition for a binary tree node.* s…