当前位置: 首页 > news >正文

速通ACM省铜第六天 赋源码(MEX Count)

目录

引言:

MEX Count

        题意分析

        逻辑梳理

        代码实现

结语:


引言:

        今天依旧是更新一篇,理了下昨天那题的思路,感觉应该是没有问题的了,本来今天想着打俩题,但今天温度太燥热了,脑子想不进去,就决定还是就打一题了(其实是下一题是1500的题,因为还没打出过这个难度的题,所以没把握能在今天打完,所以就放明天打了),今天我们要讲的是CF难度分定为1400的一道题,但这题我感觉比昨天1300的简单很多,思路特别简单清晰,那么,接下来,我们就进入今天的算法讲解——————>

                ​​​​​​​        ​​​​​​​        ​​​​​​​        


MEX Count

        那么,一如既往,我们分三步来讲解这道1400的题,接下来,我们就来分析一下题目

        题意分析

        这是题目的链接Problem - 2123E - Codeforces

        不想跳转的可看下图

这个题目还是很简单的,就是给你一个长度为 n 的数组,然后你可以从其中删掉 0 - n 个元素,然后这个数组的值就是数组里的最小非负整数,问你在删除X个元素的情况下,数组的值有几种可能,然后从删除0个开始到删除n个为止,每次都输出数组值的情况的个数。

这就是题目要我们做的事情了,逻辑其实也很简单,接下来我们就进入逻辑梳理环节


        逻辑梳理

        首先,我们来想一下如果想要让数组的值为x时,需要保证的条件

        最小的条件:要保证数组内有0 - x-1的数,即要有x个数

        最大的条件:就是不管别的数,首先要把 x 这个位置上的数的个数给清空

        那么接下来,我们通过删除元素个数来满足这个条件

        如果要保证数组内大小为 x 的元素个数为0,那么我们删掉大小为 x 的元素的个数就可以了

        如果要保证数组内只有0- x-1的数,那么最坏的情况就是0- x-1的数都只有一个,那么就是把数组内的其他的数全部删光,即删掉 n-x 个元素

        那也就是说,如果要让数组的值为x,那么删除元素的个数的范围就是要在 x到n-x这个范围内

        那么,范围确定好了,接下来还有细节问题,那便是如果一个数组中间有间隔,那么就可以直接中断不访问后面的了,如图

        

        该图中2的个数为0,已经中断了,不管比2大的数有多少,都只会输出2,所以遇到第一个个数为0的元素后,就可以直接结束不访问后面的元素了

        那么每个数的范围都知道了,细节也注意到了,那删除不同个数能出现的可能情况也就一目了然了,那么,怎么用代码来实现呢,接下来,我们来进入代码实现环节


        代码实现

        那么,我们只需要先用一个数组来进行存储每个数的次数即可,然后再用循环找到第一个出现次数为0的一个数字,接下来,在缩小后的范围内进行操作即可,这便完成了逻辑梳理中中断访问的操作,但这个其实不说应该也都会

        主要还是如何算个数的问题,如果用每个数的范围来进行排序再递进大概率会超时,若用遍历这毫无疑问会超时,那么关乎到范围,其实我们可以用差分来解决,若用了差分,那么该题的难点也就解决了,那么接下来,就展示AC代码啦,代码其实是很简单易懂的

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <math.h>
#include <queue>
#include <vector>
using namespace std;int t;
int a[200010];
int cha[200010];void solve()
{memset(a, 0, sizeof(a));memset(cha, 0, sizeof(cha));int n, k;cin >> n;for (int i = 1; i <= n; i++){cin >> k;a[k]++;}int wei = 0;for (int i = 0; i <= n; i++){if (a[i] == 0){wei = i;break;}}for (int i = 0; i <= wei; i++){cha[a[i]]++;cha[n - i + 1]--;}int ans = 0;for (int i = 0; i < n; i++){ans += cha[i];cout << ans << " ";}cout << "1" << endl;
}int main()
{cin >> t;while (t--){solve();}return 0;
}

        那么,这题就讲完啦

结语:

        今日算法讲解到此结束啦,希望对你们有所帮助,谢谢观看,如果觉得不错可以分享给朋友哟。

        明天的题目应该难度会上一层次,毕竟是1500的题,我可能还没把握能做出来(悲)


文章转载自:

http://1LLEnIsF.wrtsm.cn
http://VD3IdWon.wrtsm.cn
http://oHbNW1B5.wrtsm.cn
http://hDgWk1sf.wrtsm.cn
http://kPyqAkBe.wrtsm.cn
http://4puAQqTx.wrtsm.cn
http://YendSAH6.wrtsm.cn
http://mUHqrAV3.wrtsm.cn
http://XhpvybA4.wrtsm.cn
http://rkM214YX.wrtsm.cn
http://uRQr8dRK.wrtsm.cn
http://dgWT9YLc.wrtsm.cn
http://vGdEa0wN.wrtsm.cn
http://MSxMqt1W.wrtsm.cn
http://CmH6mcym.wrtsm.cn
http://8i1l58yC.wrtsm.cn
http://v8kJYXau.wrtsm.cn
http://H5rTWopE.wrtsm.cn
http://x4M17gPk.wrtsm.cn
http://kbfVYBtG.wrtsm.cn
http://zytyrpkk.wrtsm.cn
http://vW4Aq9Pw.wrtsm.cn
http://y04qhen4.wrtsm.cn
http://7xhUARl0.wrtsm.cn
http://M8bpA2AQ.wrtsm.cn
http://fKdYYkNh.wrtsm.cn
http://f6E0C3XF.wrtsm.cn
http://A4G7pBVm.wrtsm.cn
http://MaQW3Gpl.wrtsm.cn
http://hgj75zCe.wrtsm.cn
http://www.dtcms.com/a/386523.html

相关文章:

  • Python自动化测试·Selenium简单介绍
  • 腾讯云轻量服务器CentOSdocker报错信息
  • 玩转Docker小游戏项目系列: Docker部署红心纸牌网页小游戏
  • Spring Cloud 注册中心:Eureka 与 Nacos 深度对比
  • 机器视觉检测中光源的作用以及分类
  • php7.4使用systemd服务器管理文件无法启动的解决办法
  • 机器视觉检测中工业相机的作用以及分类
  • MySQL 备份与还原
  • 5 分钟 SAE 极速部署 Dify,高效开发 AI 智能体应用
  • [硬件电路-233]:增强型MOS中的增强,是指通过增加正电压使得沟道从无到有的增强。耗尽型MOS中的耗尽,通过增加负电压使得沟通从最大逐渐减弱直到耗尽。
  • 整体设计 之 绪 思维导图引擎 之 引 认知系统 之 引 认知系统 之 序 认知元架构 之 概要设计收官 之1 汇总 形式化表示
  • TDengine 时序函数 DIFF 用户手册
  • 60.[前端开发-Vue3]Day02-模板语法-列表渲染-OptionsAPI-侦听器
  • UML_类图
  • 八串口服务器-工业物联网解决方案
  • 烟花爆竹储存防火防爆知识,《烟花爆竹储存作业证》考试重点
  • Linux网络:守护进程
  • 用C语言求数组Sn的前5项
  • 物联网传感器检测实验
  • GTA式送货!新游《Deliver At All Costs》上线steam
  • 亚马逊新品优化全攻略:从冷启动到高转化的系统化路径
  • 基于属性描述转移的高压断路器零样本智能诊断模型
  • C2(Command Control)命令与控制
  • Tessent_ijtag_ug——第 5 章IJTAG 网络插入 (2)
  • Kaggle铜牌攻略:从泰坦尼克到房价预测,数据科学竞赛完整流程解析
  • 结合图像-文本信息与特征解纠缠的多标签广义零样本胸部X射线分类|文献速递-最新医学人工智能文献
  • JavaScript数组some()和every()方法
  • 全球炭黑复合导电浆料市场报告:原材料波动与技术创新的双重博弈
  • 自动为wordpress外贸网站设置一个标题图
  • 【大模型记忆-Mem0详解-6】核心组件-图形记忆