202112-2 CCF 序列查询新解 (枚举 + 分段讨论 满分题解)

news/2024/5/7 1:50:39/文章来源:https://blog.csdn.net/qq_51800570/article/details/126769692

问题描述

序列查询新解 题目链接

解题思路

在这里插入图片描述
这个是上一道题目总结出来的规律
就是 f(x) = i 当x属于 【a[i], a[i + 1] ) 这个区间
也就是在这个区间里f(x)都等于一个数i

再看g(x)这个函数,g(x)= x / 常数,也可以知道,g(x)也是单调递增的
在这里插入图片描述
并且根据规律,可以求得任意g(x)
每一段相同值的g(x),以i / r为值,长度为 r

我们可以将数组根据f(x)相等,划分为n段
再根据每一段计算差值
又由于f(x)相等的这一段内,g(x)有可能既有比f(x)小,又有比f(x)大的情况,所以直接累加求差是不可取的
所以我们可以在f(x)相等的这一段内,再根据g(x)相等进行划分段,这样划分出来的段,求和做差 == abs(f(x) - g(x))

然后值得注意的点是
数据很大,要开long long ,不然过不了
在f(x)相等的这一段内,再根据g(x)相等进行划分段,可能存在长度不等于r的段(首尾会出现),所以要计算这个段还剩几个
怎么算?
根据上面那个图的规律可以发现,他就是以r为长度,不断循环,0,1,2 …r - 1
所以 当前数x % r就是当前第几个
一段一共有r个,所以还剩r - x % r个
计算出还剩多少个时,要判断是否超出f(x)的长度范围
然后累加计算就行


代码实现

#include <iostream>
#include <algorithm>
#include <cstring>using namespace std;int main()
{int n;long long N;cin >> n >> N;long long a[n + 10];a[0] = 0;for (int i = 1; i <= n; i ++) cin >> a[i];a[n + 1] = N; //多加上一位,减少特判long long res = 0;long long r = N / (n + 1);for (int i = 0; i <= n; i ++){long long res1 = 0, res2 = 0;for (long long j = a[i]; j < a[i + 1];){long long num = j / r;long long cnt = r - j % r;cnt = min(cnt, a[i + 1] - j);res1 = cnt * i;res2 = cnt * num;res += abs(res1 - res2);j += cnt;}}cout << res;return 0;
}

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

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

相关文章

微服务技术初探(go-micro)

微服务技术初探 微服务概述 微服务是近几年产生的新概念,与传统的单体式服务相比,微服务具有更好的扩展性及低耦合度等特性。微服务的重点在于服务的治理和调度。 微(micro):狭义来说就是体积小。 服务(service):区别于系统,服务一个或者一组相对较小且独立的功能单元,是…

c语言实现通讯录

目录标题通讯录的介绍通讯录的准备通讯录的初始化通讯录的添加通讯录的打印通讯录的查找并打印通讯录的删除通讯录的排序通讯录的修改通讯录的改善动态通讯录的实现以文件的形式存储通讯录的介绍 通讯录想必大家都应该不陌生&#xff0c;我们在手机里面都会有通讯录里面记录着…

爬虫数据可视化前的环境准备(已安装python环境前提下)

一、requests请求库安装 在桌面右键打开终端输入:pip install requests 二、Beautiful Soup解析库安装 终端输入:Beautiful Soup 4安装:pip install bs4 lxml安装:pip install lxml三、matplotlib安装下载miniconda下载地址:https://docs.conda.io/en/latest/miniconda.ht…

CF102411 ICPC 2019-2020 North-Western Russia Regional Contest题解

A Accurate Movement 签到 M Managing Difficulties 签到 B Bad Treap 已知\(y=\sin(x)\),要求给出数组\(a[n]\),满足\(\forall i,j\in[1,n],a[i]\neq a[j]\),都有\(\sin(a[i])\neq \sin(a[j])\)。 这里又一种不怎么玄的写法,就是我们找到一个整数\(x\),\(sin(x)\)非常非常…

计算机的概述

计算机是由硬件系统(hardware system)和软件系统(software system)两部分组成的。硬件系统电源电源是电脑中不可缺少的供电设备,它的作用是将220V交流电转换为电脑中使用的5V、12V、3.3V直流电,其性能的好坏,直接影响到电脑其他设备工作的稳定性,进而会影响整机的稳定性…

AXI MCDMA 仿真与工作流程分析

说明 关于背景知识,可以先看 https://www.cnblogs.com/xingce/p/16386108.html 引用一段官方的说明,AXI MCDMA存在的主要目的是为了节约资源,我们想要使用这个模块的主要目的也是为了降低资源消耗,从而可以将系统部署在更小面积的FPGA芯片上,当然,具体的效果还需要进一步…

软件定义网络第一次作业,问题与解决方法

软件定义网络第一次作业,问题与解决方法 实验结果截图:实验总结: 1.若使用VMware Workstation Pro。 版本最好使用20.04版本,网络较稳定且兼容性好。且22.04版本可能无法安装Vmware tools。 2.遇到网络无法访问,可尝试换源。 3.若需要压缩包,可在虚拟机中下载,或从电脑拖…

【kali】一款黑客们都在使用的操作系统

&#x1f495;&#x1f495;&#x1f495; 博主昵称&#xff1a;摆烂阳&#x1f495;&#x1f495;&#x1f495; &#x1f970;博主主页跳转链接 &#x1f469;‍&#x1f4bb;博主研究方向&#xff1a;web渗透测试 、python编程 &#x1f4c3; 博主寄语&#xff1a;希望本篇文…

共享单车需求量登记分类及影响因素分析——基于机器学习模型的比较分析

全文链接&#xff1a;http://tecdat.cn/?p28519 作者&#xff1a;Yiyi Hu 近年来&#xff0c;共享经济成为社会服务业内的一股重要力量。作为共享经济的一个代表性行业&#xff0c;共享单车快速发展&#xff0c;成为继地铁、公交之后的第三大公共出行方式。但与此同时&…

【笔记】Python网络爬虫与信息提取

实战&#xff1a;总结知识点疫情爬虫Re正则表达式Re库的使用scrapy爬虫框架介绍Scrapy常用命令网络爬虫技术亮点&#xff1a;1、采用requests发送请求&#xff0c;获取响应2、采用BeautifulSoup4解析页面数据3、采用正则表达式 提取不规则字符串4、采用json模块处理json格式数据…

Java架构师常见基础面试题(附答案)

随着每日确诊病例人数的减少以及治愈患者人数增多&#xff0c;随着这场抗“疫”战争即将以胜利告终&#xff0c;接踵而来的是企业复工、金三银四求职高峰季的来临。有很多Java工程师想要把握住这个机会&#xff0c;实现升职加薪、成为Java架构师。但你知道企业在招聘面试时会提…

证件照换底色

阅读原文 如有侵权,请联系立即删除。 5种方法轻松给证件照换底色不同底色的证件照有着不同的用途。如白底的证件照一般用于身份证、港澳通行证等用途;而蓝底的证件照则用于工作证、简历等。例如我们需要提供蓝色背景的证件照,而手头只有白色背景的证件照,该怎么办呢?其实我…

开学季征文丨来大学已两年,我还有几个两年?

&#x1f44b;写在前面 大家好&#xff0c;我是陈橘又青&#xff0c;一名双非本科大学生&#xff0c;计算机科学与技术专业&#xff0c;最近因为疫情的原因&#xff0c;开学以来一直在家里上网课&#xff0c;也不是很忙&#xff0c;所以我想借着这次开学季征文活动&#xff0c;…

羧基化聚苯乙烯-二氧化硅复合材料/季铵化壳聚糖掺杂荷正电聚苯乙烯微球的制备步骤

今日小编为大家分享了羧基化聚苯乙烯-二氧化硅复合材料/季铵化壳聚糖掺杂荷正电聚苯乙烯微球的制备步骤&#xff0c;一起来看&#xff01; 羧基化聚苯乙烯-二氧化硅复合超疏水涂层的制备方法,其特征在于包括如下步骤&#xff1a; (聚苯乙烯种子微球的制备;羧基修饰的聚苯乙烯微…

【控制】滑模控制,小例子,有程序有结果图

目录滑模控制的一点笔记和看法1【控制】滑动模型控制&#xff08;Sliding Mode Control&#xff09;2【控制】滑模控制&#xff0c;小例子&#xff0c;有程序有结果图3【控制】滑模控制&#xff0c;滑模面的选择文章目录1 问题描述2 滑模控制器设计2.1 滑模面选择2.2 控制器设计…

麻了,别再为难软件测试员了

前言 有不少技术友在测试群里讨论&#xff0c;近期的面试越来越难了&#xff0c;要背的八股文越来越多了,考察得越来越细&#xff0c;越来越底层&#xff0c;明摆着就是想让我们徒手造航母嘛&#xff01;实在是太为难我们这些测试工程师了。 这不&#xff0c;为了帮大家节约时…

hive中使用iceberg表格式时锁表总结

1. 原因 写入iceberg表时,会在hive_locks表中插入一条记录,表示该表正在被写入(hive中的独占锁)当数据插入完成后,会自动删除该条记录。 2. 出现场景 (1)在同时往同一个iceberg表中写入数据时,会出现Retrying task after failure: Waiting for lock之类的警告信息 如果有…

Docker 环境 Nacos2 MySQL8

本文介绍 docker 环境下安装并单机运行 Nacos2,使用 docker 环境下的 MySQL 8 存储数据。本文介绍 docker 环境下安装并单机运行 Nacos2,使用 docker 环境下的 MySQL 8 存储数据。 1 拉取镜像 1.1 创建目录 在硬盘上创建 nacos 的有关目录: mkdir -p /Users/yygnb/dockerMe/…

FPGA之旅设计99例之第十三例-----FPGA在OLED上显示DHT11数据

一. 简介 这是FPGA之旅设计的第十三例啦&#xff0c;本例是一个综合性的例程&#xff0c;基于OLED屏幕显示&#xff0c;和DHT11温湿度采集&#xff0c;将DHT11采集到的温湿度显示到OLED屏幕上。 在开始本例之前&#xff0c;先补充一下&#xff0c;在上例中&#xff0c;代码中…

Webpack 打包 - 14. html压缩

这里使用 html-webpack-plugin 插件压缩 html 文件。 1.文件结构 2.代码 index.html<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>webpack</title> </head> <body> <!--这里…