ccf序列查询新解python满分_纯数学规律(学霸怎么想到的啊......)

news2024/9/21 12:36:00

题目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

思路和代码

这题我也就看了好几个小时吧。终于!有点懂了!

上午看懂了用双指针写《下一个排序》后就在看这题。70分的代码很好写也很好想,就是模拟fx和gx,然后遍历一趟,得到最终的结果。

看了学霸的代码,debug了几个小时啊,终于感觉有点懂了,我真的是被自己蠢哭啊!

以第一个具体的例子说吧,首先用一个数组fx_count记录fx每段的元素个数。对于上述的例子,fx为[0,0,1,1,1,2,2,2,3,3],一共有四段,fx_count为[2,3,3,2]。

fx 0 0 1 1 1 2 2 2 3 3
gx 0 0 1 1 2 2 3 3 4 4

最外层的while循环,i表示当前第几段,又表示当前段每个f(x)的值。如i=0,表示第0段,0段的所有f(x)都为0。

fx_count[i]表示fx当前段还剩多少个值没有与gx的值进行比较。每个gx段一开始元素个数都是r,用gxnum表示gx的当前段还剩多少个值。

先进行判断,if fx_count[i] >= gxnum(如当i首次等于1时,fx_count[1]是3, gxnum是2)。那么最终要返回的结果ans,ans += gxnum *abs (i - value)。这里的i就是f(x)的值,value就是gx的值。计算了gxnum个数后,fx_count[i] -= gxnum(如fx_count[1]从3变成1)。 gx开启新段,所以这时候gxnum重新赋值为r且value值加一(gxnum=2,且value=2)。

否则,fx_count[i] < gxnum(如fx_count[1]是1, gxnum是2)。ans += fx_count[i] *abs (i - value)。

重点来了!

如果fx的当前段没比较的数目大于等于gx当前段没有比较的数目,那么ans加的是 gxnum abs (i - value) 。以上面例子中fx的 1 1 1和gx的1 1 2为例,此时fx_count[1]是3, gxnum是2,ans+= 2abs(1-1),ans为0。

而当fx的当前段没比较的数目小于gx当前段没有比较的数目,则ans加的是 fx_count[i] abs (i - value)。还是以上面例子中fx的 1 1 1和gx的1 1 2为例,此时fx_count[1]是3-2=1, ans+= 1abs(1-2),ans为1。

总而言之,ans在进行累加的时候,abs(i-value)前面的系数以fx和gx当前段没进行比较的元素个数中的较小值为准。

上代码上代码:

n, N = map(int, input().split())
A = list(map(int, input().split()))
r = N // (n+1)
A.insert(0, 0)
# fx_count数组记录的是f每一段的长度
fx_count = [0]*(n+1)
for i in range(n):
    fx_count[i] = A[i+1] - A[i]
fx_count[n] = N-A[-1]
# 表示fx的第i段 且该段的每个fx的值都为i
i = 0
# value表示gx的当前值
value = 0
# gxnum 初始值记录的是 r
gxnum = r
ans = 0
while i <= n:
    if fx_count[i] >= gxnum:
        ans += gxnum * abs(i-value)
        # fx_count[i] fx当前段中还剩下多少个
        fx_count[i] -= gxnum
        # 此时gx要开启新的下一段
        # 所以value+1 gxnum重新变成了r
        value += 1
        gxnum = r
    else:
        ans += fx_count[i] * abs(i-value)
        # 当前gx的同一段中还剩多少个元素
        gxnum -= fx_count[i]
        i += 1
print(ans)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用桥梁振动自动识别车辆(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

Qt在线安装教程(详细图文)

Qt在线安装教程&#xff08;详细图文一、前言二、QT账号的注册三、QT的安装的镜像四、安装的过程一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;小伙伴们&#xff0c;让我们一起来学习Qt在线安装。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连) 二、QT账号…

js-mark新时代的网页标记容器

js-mark &#x1f58d;️️ ✨ 它提供了一组可交互操作的工具来注释网页内容 ✨&#x1f58d;️ js-mark是一个JavaScript库&#xff0c;用于在浏览器。他是一个可以在任何网页做标记的前端库, 它提供了一组可交互操作的工具来注释网页内容。 支持标记文本和 持久化存储与还原…

LSTM和双向LSTM讲解及实践

目录&#xff1a; RNN的长期依赖问题LSTM原理讲解双向LSTM原理讲解keras实现LSTM和双向LSTM RNN 的长期依赖问题 在上篇文章中介绍的循环神经网络RNN在训练的过程中会有长期依赖的问题&#xff0c;这是由于RNN模型在训练时会遇到梯度消失(大部分情况)或者梯度爆炸(很少&…

网络1323的分类行为

( A, B )---2*30*2---( 1, 0 )( 0, 1 ) 用网络分类A和B&#xff0c;让A是&#xff08;0&#xff0c;1&#xff09;&#xff08;1&#xff0c;1&#xff09;&#xff0c;让B是&#xff08;1&#xff0c;0&#xff09;&#xff08;1&#xff0c;1&#xff09;。测试集为&#xf…

[附源码]计算机毕业设计springboot学生在线考试系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

408 考研《操作系统》第一章第三节:中断和异常、系统调用

文章目录教程1.中断和异常1.1 中断的作用1.2 中断的类型1.2.1 外中断的处理过程1.2.1 内中断的处理过程1.3 中断机制的基本原理1.4 总结2. 系统调用2.1 什么是系统调用&#xff1f;2.2 小例子&#xff1a;为什么系统调用是必须的&#xff1f;2.3 什么功能要用系统调用实现&…

m基于随机接入代价的异构网络速率分配算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 无线接入技术发展迅速&#xff0c;异构网络并存的现象普遍存在&#xff1b;同时&#xff0c;随着终端用户数量的剧增、业务类型的多样化和高服务质量多媒体数据业务需求的增加&#xff0c;通过异…

磨金石教育插画技能干货分享|插画怎么配色才好看?

在绘画界&#xff0c;配色是非常重要的步骤&#xff0c;一幅作品能够展现出什么样的品质&#xff0c;配色起着举足轻重的作用。颜色配的好会给作品晋商添花&#xff0c;配的不好&#xff0c;就会让作品失去水准&#xff0c;缺少神韵。 所以想学好插画&#xff0c;就要在在配色上…

python离线环境下安装第三方模块的方法

一.背景 1.背景&#xff1a; 在实际开发中&#xff0c;我们自己电脑上方便上网可以随时安装自己需要的包文件&#xff0c;但是有的项目现场不能联网或者现场是“内网”不具备联网条件&#xff0c;所以必须解决在“离线电脑上”安装需要的软件包的问题。 2.环境说明以及实现步…

SpringCloud微服务项目实战 - 项目搭建

面对大河我无限惭愧 我年华虚度空有一身疲倦 系列文章目录 项目搭建app登录 一、项目介绍 1. 项目背景 项目概述&#xff1a; 类似于新闻头条&#xff0c;是一个新闻资讯类项目 &#xff08;这里之后放项目APP端的截图&#xff09; 技术架构&#xff1a; 项目术语&…

Ubuntu18.04安装ROS、Gazebo、Mavros、PX4、QGC教程

修改国内源 修改apt sudo cp /etc/apt/source.list /etc/apt/source.list.old sudo gedit /etc/apt/source.list输入如下进行保存 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic m…

转行|什么是游戏建模??小本本记下来

今天来说一下游戏建模…小本本记下来 &#x1f440;3D手绘建模 3D美术设计师根据原画设计师的构思&#xff0c;将二维的东西在3D软件里面制作出来&#xff0c;最终得到的东西是模型( 3Dmax )和贴图&#xff08;软件PS、Bodypaint ) &#xff0c;模型是物体的主要构架&#xff…

Kaggle Feedback Prize 3比赛总结:两种模型设计思路

比赛的目标&#xff1a;本次竞赛的目标是评估8-12年级英语学习者&#xff08;ELLs&#xff09;的语言能力。利用英语学习者所写的论文数据集开发出能更好地支持所有学生的能力模型&#xff0c;帮助ELL学生在语言发展方面得到更准确的反馈&#xff0c;并加快教师的评分周期。 方…

RestTemplate使用InputStreamResource上传文件

背景 1. 我们应用服务是Spring boot项目&#xff0c;预览服务是我们另一个团队提供的用.net写的&#xff0c;最终使用的是office online来实现文件预览的功能。 2. 我们文件在阿里云OSS存储&#xff0c;我们需要预览文件需要将文件上传至预览服务器。 3. 计划使用RestTemplate…

线程池自查注意点

文章目录线程池自查注意点1、线程池的标准创建方式2、线程池的任务调度流程3、避免使用Executors快捷创建线程池3.1、newSingleThreadExecutor()3.2、newCachedThreadPool()3.3、ScheduledThreadPool()4、避免在方法中创建线程池5、不要盲目使用同步队列6、使用线程池&#xff…

MySQL库的操作

文章目录MySQL库的操作创建数据库创建数据库案例字符集和校验规则查看系统默认字符集以及校验规则查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响操纵数据库查看数据库显示创建语句修改数据库删除数据库备份和恢复数据库的备份和恢复表的备份和恢…

Cracking the Safes之Linux系统下gdb调试

Cracking Safe是什么 挑战是找出四个保险箱中每个保险箱预期的正确的5个输入集。在运行二进制安全程序时,您需要一次输入一个猜测,如下所示: 其实,就是输入5次,程序会对输入内容进行判断,只有符合程序要求才能成功,任务就是逆向找到正确的字符串!!! 解题思路 反汇…

mac pro M1(ARM)安装:centos8.0虚拟机

0.引言 mac发布了m1芯片&#xff0c;其强悍的性能收到很多开发者的追捧&#xff0c;但是也因为其架构的更换&#xff0c;导致很多软件或环境的安装成了问题&#xff0c;之前我们讲解了如何安装centos7。这次我们接着来看如何在mac m1环境下安装centos8 1.下载 1.1 安装VMwar…