CodeForces 624 B. Making a String(贪心)
来源:互联网 发布:金融行业使用软件 编辑:程序博客网 时间:2024/05/21 06:32
Description
要求用n个不同的字母构造一个串,给出串中每种字母出现次数的上限,并要求串中出现过的字母的数量都不同,问串长最多是多少
Input
一个整数n表示字母种数,之后为n个整数ai表示每种字母在串中出现次数使得上限(2<=n<=26,1<=ai<=10^9)
Output
输出最长串长
Sample Input
3
2 5 5
Sample Output
11
Solution
贪心,尽量多的用字母
Code
#include<cstdio>#include<iostream>#include<map>using namespace std;typedef long long ll;int n,a[33];map<int,int>m;int main(){ while(~scanf("%d",&n)) { m.clear(); for(int i=0;i<n;i++) scanf("%d",&a[i]),m[a[i]]++; ll ans=0; for(int i=0;i<n;i++) { int t=a[i]; if(m[t]>1) { m[t]--,t--; while(m[t])t--; } m[t]++; if(t>0)ans+=t; } printf("%I64d\n",ans); } return 0;}
0 0
- CodeForces 624 B. Making a String(贪心)
- CodeForces 624B Making a String(贪心)
- B - Making a String-----CodeForces 624B
- Codeforces 624B Making a String 【水题】
- CodeForces 624B Making a String
- CodeForces 624B - Making a String
- B. Making a String
- cf#AIM Tech Round -B. Making a String-贪心/set
- AIM Tech Round (Div. 2)-B. Making a String(贪心)
- Codeforces AIM Tech Round (Div. 2) B. Making a String
- Codeforces AIM Tech Round (Div. 2) 624B Making a String
- B. Making a String【水题】
- codeforces624B Making a String 贪心 排序
- AIM Tech Round (Div. 2)--B. Making a String
- CF624B - Making a String
- Making a String
- codeforces 781B. Innokenty and a Football League(贪心)
- Codeforces Round #303 (Div. 2) A - Equidistant String(贪心)
- 下载
- 反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- android中xml tools属性详解
- HTTP协议(二):header标头说明
- 仅当使用了列的列表,并且IDENTITY_INSERT为ON时,才能在表'goldlog'中为标识列指定显式值
- CodeForces 624 B. Making a String(贪心)
- centos minimal 网络配置详细解读
- 第一行代码-9.2 Android 多线程编程
- openGL画点---openGL学习笔记(二)
- 全面解析Java的垃圾回收机制
- Jquery中$(document).ready()和window.onload的区别
- shell脚本实例-交叉证认
- PHP之标准类
- 横竖屏切换时候Activity的生命周期