【离散化+枚举】代码源每日一题div2 全部相等

news2024/11/25 1:44:30

全部相等 - 题目 - Daimayuan Online Judge

题意:

思路:

首先,子序列最长,想到了DP,但是子序列DP,D不出来,所以要放弃想法

不难发现,这道题和顺序没有关系,所以可以说,它不是严格意义上的“子序列”

因为每个元素的出现次数相同,因此我们可以去枚举每个元素的出现次数,然后算贡献

贡献就是次数*(出现次数大于这个次数的个数)

那么后者怎么算呢

可以考虑笨笨的线段树,但是事实上一个map的后缀和就能解决问题,这是很常见的trick

但是范围是1e9,怎么办呢?数列一共就不长,离散化一下即可

当值域太大时,考虑离散化

Code:

#include <bits/stdc++.h>

#define int long long

using namespace std;

using i64 = long long;

const int mxn=2e5+10;

map<int,int> mp,mp2;

int N,idx=0;
int a[mxn];
int mp3[mxn];

int S(int x){
	if(mp2.count(x)) return mp2[x];
	return mp2[x]=++idx;
}
void solve(){
	cin>>N;
	for(int i=1;i<=N;i++) cin>>a[i];
	for(int i=1;i<=N;i++){
		a[i]=S(a[i]);
		mp[a[i]]++;
	}
	//for(int i=1;i<=N;i++) cout<<a[i]<<" \n"[i==N];
	for(auto it:mp) mp3[it.second]++;
	for(int i=N;i>=1;i--) mp3[i]+=mp3[i+1];
	int ans=0;
	for(int c=1;c<=N;c++){
		ans=max(ans,c*mp3[c]);
	}
	cout<<ans<<'\n';
}
signed main(){
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int __=1;//cin>>__;
    while(__--)solve();return 0;
}

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

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

相关文章

Vision Pro,难成初代iPhone

“一个全新的增强显示平台&#xff0c;一个革命性的新产品”&#xff0c;这是苹果CEO库克给Apple Vision Pro的评价。 当苹果拿出Vision Pro时&#xff0c;想必整个科技行业都感到震惊。这不仅是因为苹果时隔十六年后&#xff0c;再次在WWDC带来“革命性产品”&#xff0c;更是…

Ai 赋能|这 6 款免安装的工具,功能超神~

今天小呆给小伙伴们分享几款小巧好用的工具&#xff0c;功能非常实用&#xff0c;而且全都免费&#xff0c;值得大家使用&#xff01; 1、Pix Fix 修复画质损坏的图像 Pix Fix 是一个免费的线上图片工具&#xff0c;可以对过度压缩造成损毁的图片以算法为基础进行噪点的修复&…

【枚举+数学】代码源每日一题div2 数学

数学 - 题目 - Daimayuan Online Judge 题意&#xff1a; 思路&#xff1a; 首先把条件理一下 gcd(s1,s2)K 按照惯用套路 设 s1k1*K s2k2*K 那么就是(k1k2)*Ksum 所以K是sum的一个因子 因此只需要枚举sum的因子即可 但是注意数据范围&#xff1a;1e9 说明不能直接枚…

MySQL数据库加密

有时候为防止别人攻击数据库&#xff0c;直接读取修改数据&#xff0c;我们会对数据库数据进行加密。 一&#xff1a;AES_ENCRYPT(需要加密的数据,密钥) AES_DECRYPT(需要解密的数据,刚才的密钥) 如&#xff1a;update area set jiamiAES_ENCRYPT(test数据加密,miyao) where …

Python基础知识掌握之 字符串格式化

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 为了确保字符串按预期显示&#xff0c;我们可以使用 format() 方法对结果进行格式化。 字符串 format() format() 方法允许您格式化字符串的选定部分。 有时文本的一部分是你无法控制的&#xff0c;也许它们来自数据…

分享几个免费设计生成工具 (第二期)

今天来给大家分享几个国外免费的设计生成工具 A. Tools https://www.a.tools/ 一个免费实用的在线工具箱&#xff0c;提供了 85 个特色工具&#xff0c;包含图形图像、日期和时间、文本编辑器、解密和加密、编程与设计、图表生成器等等&#xff0c;还有热门的 AI聊天提示生成器…

freemarker学习记录

freemarker 介绍 FreeMarker 是一款模板引擎&#xff1a; 即一种基于模板和要改变的数据&#xff0c; 并用来生成输出文本(HTML网页&#xff0c;电子邮件&#xff0c;配置文件&#xff0c;源代码等)的通用工具。 它不是面向最终用户的&#xff0c;而是一个Java类库&#xff0c…

electron 生命周期

生命周期事件&#xff1a; reday: app初始化完成dom-ready:一个窗口的文本加载完成&#xff0c;可以进行dom操作did-finish-load: 导航完成时触发,选项卡旋转器停止旋转时&#xff08;发生在dom-ready后&#xff09;比如点击一个选项卡后&#xff0c;某一个选项下的dom加载完成…

基于zustand维护的一套跨框架(react/vue)跨应用的状态管理及共享方案

zustand-pub 只要从事前端开发&#xff0c;不论是小程序还是web&#xff0c;都绕不开状态管理。 众所周知&#xff0c; zustand 是一套轻量、便捷、可拓展的状态管理方案&#xff0c;不论国内 or 国外&#xff0c;都备受喜爱&#xff0c;star 数已接近 3W。 而 zustand-pub 则…

ThreadLocal源码深度详解

文章目录 一、ThreadLocal简单使用二、ThreadLocal源码详解1、set方法&#xff08;1&#xff09;getMap(t)&#xff08;2&#xff09;createMap 2、get方法3、setInitialValue方法 三、ThreadLocalMap详解1、ThreadLocalMap为什么要设置Entry数组2、key计算的下标会重复吗&…

华为OD机试真题 JavaScript 实现【查找两个字符串a,b中的最长公共子串】【牛客练习题】

一、题目描述 查找两个字符串a,b中的最长公共子串。若有多个&#xff0c;输出在较短串中最先出现的那个。 注&#xff1a;子串的定义&#xff1a;将一个字符串删去前缀和后缀&#xff08;也可以不删&#xff09;形成的字符串。请和“子序列”的概念分开&#xff01; 数据范围…

C语言第三课-----------加油 加油 加油

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com 目录 数组 操作符 常见关键字 ________________________________________ 紧接上一课,上一篇博客我已经简单介绍了变量的作用域和生命周期,常量,字符串转义字符注释,选择语句,循环语句,函数这些下面…

二叉树题目:二叉树的前序遍历

文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 解法三思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;二叉树的前序遍历 出处&#xff1a;144. 二叉树的前序遍历 难度 3 级 题目…

k8s master组件无法重启

1.案例 k8s的master组件出错&#xff0c;删掉pod重新拉起也无法正常启动 kubectl get pod -n kube-system 可以看到controller和scheduler组件都显示异常 kubectl describe pod kube-apiserver-k8s-master03 -n kube-system 通过describe查看组件容器的详细信息也并没有报错…

SpringBoot接口加密解密工具

介绍&#xff08;项目源码见文末&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 在软件项目开发过程中&#xff0c;当需要对后端返回数据进行加密&#xff0c;或者前段向后端发送的数据时加密后的数据&#xff0c;那么在接收前就需要…

DuiLib了解xml的使用和布局

文章目录 1、了解 XML 使用和布局2、VerticalLayout和HorizontalLayout3、TabLayout4、TileLayout5、Container6、ChildLayout 1、了解 XML 使用和布局 本节主要介绍 DuiLib 中 XML 关键字的使用和一些特性&#xff0c;通过构建一个简单的带标题栏和简单结构的窗口&#xff0c…

GCC编译四步和LDS脚本

GCC编译四步 1、预处理&#xff1a;宏定义替换之类的工作 2、编译非汇编&#xff1a;将源代码经过词法分析、语法分析、语义分析转为汇编代码的过程 3、汇编&#xff1a;将汇编代码转为具体二进制机器码的过程&#xff08;此时由于还没有进行链接&#xff0c;所以虽然是二进…

Context Prior for Scene Segmentation--CVPR, 2020

Context Prior for Scene Segmentation–CVPR, 2020 文章目录 Context Prior for Scene Segmentation--CVPR, 2020一、背景介绍二、方法介绍1.A的生成2.Affinity Loss3.如何从 X X X获取P4.Y操作 一、背景介绍 问题&#xff1a;现阶段&#xff0c;不少语义分割方法所限于卷积结…

快速部署合同管理模板:低代码实现高效率

在现代商业环境中&#xff0c;合同管理是企业日常运营中至关重要的一环。合同是企业与外部实体之间约定的法律文件&#xff0c;合够帮助企业有效管理合同的全生命周期&#xff0c;包括合同创建、审批、签署、执行和归档&#xff0c;以提高合同管理的效率和准确性。 随着企业数…

软件测试面试题(大全)

1.B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行&#xff0c;可以实现跨平台&#xff0c;客户端零维护&#xff0c;维护成本低&#xff0c;但是个性化能力低&#xff0c;响应速度较慢 C/S响应速度快&#xff0c;安全性强&#xff0c;一般应用于局域网中&#xff0c;因…