codeforces624B Making a String 贪心 排序

团体程序设计天梯赛-练习集 L2-2. 链表去重 数组模拟链表 L2-2. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的结点。即对任意键值K,只有键值或其绝对值等于K的第一个 阅读详情

B. Making a String
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You are given an alphabet consisting of n letters, your task is to make a string of the maximum possible length so that the following conditions are satisfied:

  • the i-th letter occurs in the string no more than ai times;
  • the number of occurrences of each letter in the string must be distinct for all the letters that occurred in the string at least once.
Input

The first line of the input contains a single integer n (2  ≤  n  ≤  26) — the number of letters in the alphabet.

The next line contains n integers ai (1 ≤ ai ≤ 109) — i-th of these integers gives the limitation on the number of occurrences of the i-th character in the string.

Output

Print a single integer — the maximum length of the string that meets all the requirements.

Examples
input
3
2 5 5
output
11
input
3
1 1 2
output
3
Note

For convenience let's consider an alphabet consisting of three letters: "a", "b", "c". In the first sample, some of the optimal strings are: "cccaabbccbb", "aabcbcbcbcb". In the second sample some of the optimal strings are: "acc", "cbc".



从大到小排序,用一个map来唯一标示,遇到标记过的不断减一,直到减到这个数之前没有出现过,累加,依次进行到底


#include <cstdio>
#include <algorithm>
#include <iostream>
#include <map>

using namespace std;

int a[30];
map<int, int> m;

bool cmp(int x, int y) {
	return x > y;
}

int main()
{
	int n;
	while (~scanf("%d", &n)) {
		m.clear();
		for (int i = 0; i < n; i++) {
			scanf("%d", &a[i]);
		}
		sort(a, a + n, cmp);
		long long ans = 0;
		for (int i = 0; i < n; i++) {
			if (m[a[i]] == 0) {
				m[a[i]]++;
				ans += a[i];
			} else {
				while (a[i] > 0) {
					if (m[--a[i]] == 0) {
						m[a[i]]++;
						ans += a[i];
						break;
					}
				}
			}
		}
		printf("%I64d\n", ans);
	}
	return 0;
}





AFSIM仿真系统组件开发入门:手把手教你扩展传感器与武器模型 本文为AFSIM仿真系统组件开发入门指南,手把手教你如何扩展传感器与武器模型。通过深入解析AFSIM基于组件的体系结构,并结合构建自定义电子扫描阵列雷达传感器和协同交战智能武器系统两个实战案例,详细介绍了从C++插件开发、MATLAB算法集成到脚本接口暴露的完整流程,帮助你掌握定制AFSIM仿真的核心能力。 阅读详情

相关推荐

从注册到投稿:一步步教你完成KBS期刊的在线投稿流程(最新版)

本文详细介绍了如何完成KBS期刊的在线投稿流程,从账号注册到最终提交的全过程。特别针对初次使用Elsevier投稿系统的研究者,提供最新版系统的操作指南,包括投稿要求、文件格式、作者信息管理等关键步骤,帮助研究者顺利投稿至这一人工智能领域的知名期刊。

egg99的博客 1589

CodeForces 624B Making a String(贪心)

题意:有n个字母,每个字母最多出现ai次,但是每个字母的出现次数都要求不一样,问你这个字符串最长多长思路:显然从大到小排序,然后贪心就好了,能选就选,不能选就–就行了#include<bits/stdc++.h> using namespace std;int a[30]; map<int,int> H; int main() { int n;scanf("%d",&n); for(

围巾的ACM博客 733

CPRI原理及应用--帧结构

对于CPRI 控制字,协议将1个超帧(256基本帧)的控制数据划分为一个“子通道”,将子通道内超帧内的控制字进行行列划分,分为4列X64行,每64个基本帧组成1列。如下图所示。每个Xs子通道内Ns的定义基本相同,在做控制字设计时,主要已Xs和Ns和X.Y.Z开展控制字映射。

u014035968的博客 2325

B. Making a String【水题】

time limit per test  1 second memory limit per test  256 megabytes input  standard input output  standard output You are given an alphabet consisting of n letters, your task

Joeferyの博客 717

做量化没有实时数据怎么行?我找到一个超级好用的Python库,速度还贼快!

今天咱们介绍了 pytdx 这个神奇的库,重点包括:✅ 安装 pytdx✅ 连接 TDX 服务器✅ 获取实时行情数据✅ 获取 K 线数据✅ 获取分笔成交数据总之,pytdx 是一个速度快、免费、易用的量化利器,适合 A 股量化交易的同学们使用。如果你还在为数据发愁,赶紧试试吧!🚀顺手再看就是对花姐最大的支持,期待你的关注。

奔跑的蜗牛 5711

Intel Realsense windows安装与入门

realsense400系列介绍: https://www.intelrealsense.com/stereo-depth/?utm_source=intelcom_website&utm_medium=button&utm_campaign=day-to-day&utm_content=D400_learn-more_button realsense 435i介绍: ...

hanshuning的专栏 1万+

Making a String

链接:http://codeforces.com/problemset/problem/624/B 题目: You are given an alphabet consisting of n letters, your task is to make a string of the maximum possible length so that the following cond

veget_chicken的博客 387

EMC原理-传导(共模、差模)与辐射(近场、远场)详解

本文深入介绍了电磁兼容(EMC)的基本概念,包括EMI和EMS,以及如何处理传导干扰(共模、差模)和辐射干扰(近场、远场)。详细讨论了近场感应、远场辐射的原理,滤波器和屏蔽技术在抑制噪声信号中的作用。此外,探讨了差模和共模干扰的来源、影响及滤除方法,如使用差模电感、电容和共模线圈。最后,提到了穿心电容在滤除高频噪声中的应用。

让你爱上电路设计 3546

Codeforces 624B Making a String 【水题】

B. Making a String time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given an alphabet consisting of n

世界很大 596

Roboguide与TIA V16通讯

Roboguide与TIA V16通讯

haier123888的博客 2672

C#部署YOLO三种方案深度实测:OpenCV DNN vs ONNX Runtime vs TensorRT

在工业视觉项目落地阶段,C#生态下部署YOLO模型主要有三条技术路线。很多开发者仅凭经验选型,往往在部署后期踩中性能瓶颈、兼容故障、维护成本超标的坑。本文基于工控机常见硬件配置,针对YOLOv8系列模型做控制变量实测,从推理性能、部署难度、工业稳定性、综合成本等多个维度做横向对比,给出可直接落地的选型结论。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 461

B. Making a String

time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given an alphabet consisting of n letters, your task is t

无知的我 1152

CUDA编程 - Nsight system & Nsight compute 的安装和使用 - 学习记录

在 cuda 编程中,经常会用到 Nsight system 和 Nsight compute 进行性能分析等,下面做个学习总结。本篇包括安装和常用分析思路总结,具体实践操作总结会放在下一篇博客。

点云算法工程师 1万+

AIM Tech Round (Div. 2) B. Making a String 贪心

题目链接:codeforces.com/contest/624/problem/B 题意:有n个字母,每个字母最多出现ai次,但是每个字母的出现次数都要求不一样 问你这个字符串最长多长? 解法:显然从大到小排序,然后贪心就好了,能选就选,不能选就--就行了 注意小心被减到负数了 //CF 624B #include <bits/stdc++.h> us...

aishangg437965的博客 115

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

CodeForces 624B - Making a String

贪心 #include #include #include using namespace std; const int MAX = 30; __int64 arr[MAX]; int main() { int n; scanf("%d", &n); for (int i = 1; i <= n; ++i) scanf("%I64d", &arr[i]); sort(ar

菜鸟 554

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

B - Making a String-----CodeForces 624B

B - Making a String Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 624B Description You are given an alphabet consistin

海水梦悠悠的博客 778

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

AIM Tech Round (Div. 2)题解

A. Save LukeLuke Skywalker got locked up in a rubbish shredder between two presses. R2D2 is already working on his rescue, but Luke needs to stay alive as long as possible. For simplicity we will assum

long-long-ago 1127

Codeforces AIM Tech Round (Div. 2) B. Making a String

B. Making a String time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given an alphabet consisting of n letters,

滴水穿石,慢慢积累,总会有成果 614

CodeForces 624B Making a String

codeforces 624B 方法比较低效。。 #include #include #include #include using namespace std; bool cmp(int a, int b) { return a > b; } int a[30]; int main() { int N; while(~scanf("%d", &N)){ int i, j;

Benjamin_Z的博客 550

hdu计算机学院大学生程序设计竞赛 2015’11 1002 投币洗衣机

投币洗衣机 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5966    Accepted Submission(s): 1495 Problem Description   如今大学生的生活条件越来越好了,近期

EventQueue的博客 1439

poj2249 Binomial Showdown 求组合数

Binomial Showdown Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18925   Accepted: 5788 Description In how many ways can you choose k elements out of n el

EventQueue的博客 1278

qduoj61 统计人数

统计人数 发布时间: 2015年12月14日 15:36   最后更新: 2015年12月14日 17:59   时间限制: 1000ms   内存限制: 32M 描述 HS想要统计镇上总共有多少人,但是他并不想一个一个的去数有多少个人,他想了一个其他的方法,他在镇上找了N个人,然后问每一个人“你知道 除你之外 镇上和你姓氏相同的人有多少个吗?”,现在HS想要知道,镇上最少有

EventQueue的博客 1044

hdu计算机学院大学生程序设计竞赛(2015’11)1004 质方数

质方数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3381    Accepted Submission(s): 1134 Problem Description   小明天生对数字比较敏感,3岁的时

EventQueue的博客 946

hdu计算机学院大学生程序设计竞赛(2015’11)1008 游乐场

游乐场 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4876    Accepted Submission(s): 757 Problem Description   小时候,因为家里经济困难,小明从未

EventQueue的博客 917

pat甲级 1020. Tree Traversals map递归建树 + BFS

先用map建立一棵二叉树,mr存右孩子节点,ml存左孩子节点,然后输出BFS路径就行了 #include #include #include #include #include using namespace std; int N; int po[35], in[35], prin[35]; int root, ip, len; map ml, mr; int solve

EventQueue的博客 903
上一篇: poj3235 Fence Repair 优先队列 哈弗曼树
下一篇: poj1190 生日蛋糕 dfs神剪枝
Daemoonn
博客等级 码龄11年 42粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值