Making a String

原创 2016年08月29日 14:51:49
链接: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 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.

题意:给最多26个字母的出现次序,要求出现次数不同,且每个字母出现的次数不超过所给的次数的最大总数。

分析:贪心,先排个序,从最大的开始考虑,如果相同依次递减。

题解:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <string>
#include <cstring>
#include <functional>
#include <cmath>
#include <cctype>
#include <cfloat>
#include <climits>
#include <complex>
#include <deque>
#include <list>
#include <set>
#include <utility>
using namespace std;

int n;
int a[27];

int main()
{
	//freopen("in.txt","r",stdin);
	//while(true){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	sort(a+1,a+n+1);
	__int64 sum=a[n];
	for(int i=n-1;i>0;i--){
		if(a[i]>=a[i+1]&&a[i+1]!=0)
			a[i]=a[i+1]-1;
		if(a[i+1]==0)
			a[i]=0;
		sum+=(__int64)a[i];
	}
	cout<<sum<<endl;//}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用CocoaPods时提示安装高版本ruby遇到的坑。

安装高版本ruby源,sudo gem install -n /usr/local/bin cocoa pods后提示的错误
  • SharkToping
  • SharkToping
  • 2016年08月25日 09:30
  • 8896

cmake:动态链接库(so)中静态链接tcmalloc(gperftools2.4)暨静态链接libstdc++

将tcmalloc作为动态库使用,非常方便,网上有很多资料介绍了。tcmalloc.a也可以很方便的以静态链接的方式加入应用程序中,大概因为使用太方便,网上关于这方面的介绍都是一笔带过。真正使用的时候...
  • 10km
  • 10km
  • 2016年01月04日 18:28
  • 1980

技术培训 | RAC 宕机罪犯案情探析之子游标

大家好,我是云和恩墨的李轶楠,不过网上的朋友更习惯叫我600,所以我也慢慢熟悉了这个称呼,其实这个称呼来自于ITPUB论坛上当时我注册的论坛ID“ORA-600”,因为这个ID跟Oracle的著名错误...
  • u013424982
  • u013424982
  • 2016年06月16日 20:44
  • 9608

codeforces624B Making a String 贪心 排序

B. Making a String time limit per test 1 second memory limit per test 256 megabytes ...
  • EventQueue
  • EventQueue
  • 2016年03月13日 19:28
  • 467

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 ...
  • zsc2014030403015
  • zsc2014030403015
  • 2016年02月05日 12:59
  • 177

【making tools】:查找一篇文章里面中文有多少个?

这个程序起因来自于我自己的想法。 以前写作文要写满800字,但是符号也占了字数,所以我想统计是否是中文真的写了800字,因此写这个程序思路: 思路是这样子的,通过文件依次读取,可以获得每一个字节,...
  • qq_23100787
  • qq_23100787
  • 2016年03月05日 16:40
  • 423

让你的代码变的更加强大(Making your C++ code robust)

Making your C++ code robust Introduction        在实际的项目中,当项目的代码量不断增加的时候,你会发现越来越难管理和跟踪其各个组件,如其不善...
  • steve123_
  • steve123_
  • 2013年07月19日 17:29
  • 669

Making UIToolbar and UINavigationBar’s background totally transparent

源自:http://atastypixel.com/blog/making-uitoolbar-and-uinavigationbars-background-totally-transparent/...
  • Koupoo
  • Koupoo
  • 2011年06月25日 10:47
  • 772

做市商策略(Market Making Strategy)

高频交易策略中最主要的一类策略就是Market Making,即通过赚取买卖价差来获取利润,该策略虽然应用于连续竞价机制,但由于与传统的做市商市场类似,所以命名为Market Making。目前有几篇...
  • u010501526
  • u010501526
  • 2013年06月09日 17:14
  • 2576

Let us learn C in Code <8> decision making

Hi, everyone. Today is April 1. who maybe the April one at this funny day. This chapter we'll learn ...
  • stevehon
  • stevehon
  • 2014年04月01日 20:54
  • 579
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Making a String
举报原因:
原因补充:

(最多只允许输入30个字)