题目链接

题意:

n个数,要保证这n个数完全不相同,求需要把原来的数增加多少,求这个值得最小值

 

Java 程序

import java.io.PrintStream;
import java.util.Arrays;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet; public class B546 { static void run(){
Scanner in = new Scanner(System.in);
PrintStream out = System.out;
int n = in.nextInt();
int[] a = new int[n];
Set set = new TreeSet();
for(int i=0;i<n;i++){
a[i] = in.nextInt();
}
Arrays.sort(a);
int count = 0;
for(int i=0;i<n;i++){
while(set.contains(a[i])){
a[i]++;
count++;
}
set.add(a[i]);
}
out.println(count);
}
public static void main(String[] args){
run();
}
}

Python程序

def B546():
n = int(raw_input())
a = map(int, raw_input().split()) d = {} # dict
count = 0
for i in range(n):
while str(a[i]) in d :
a[i]+=1
count+=1
d[str(a[i])] = 1
#print d
print count if __name__=='__main__':
B546()

上面的d是一个字典,和上面的TreeSet集合差不多的,都是不允许有重复元素出现的。。。

546B. Soldier and Badges的更多相关文章

  1. 「CodeForces 546B」Soldier and Badges 解题报告

    CF546B Soldier and Badges 题意翻译 给 n 个数,每次操作可以将一个数 +1,要使这 n 个数都不相同, 求最少要加多少? \(1 \le n \le 3000\) 感谢@凉 ...

  2. CF Soldier and Badges (贪心)

    Soldier and Badges time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  3. Codeforces Round #304 (Div. 2) B. Soldier and Badges 水题

    B. Soldier and Badges Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/54 ...

  4. 贪心 Codeforces Round #304 (Div. 2) B. Soldier and Badges

    题目传送门 /* 题意:问最少增加多少值使变成递增序列 贪心:排序后,每一个值改为前一个值+1,有可能a[i-1] = a[i] + 1,所以要 >= */ #include <cstdi ...

  5. CF 546 B Soldier and Badges(贪心)

    原题链接:http://codeforces.com/problemset/problem/546/B 原题描述: Soldier and Badges Colonel has n badges. H ...

  6. Codeforces Round #304 (Div. 2) B. Soldier and Badges【思维/给你一个序列,每次操作你可以对一个元素加1,问最少经过多少次操作,才能使所有元素互不相同】

    B. Soldier and Badges time limit per test 3 seconds memory limit per test 256 megabytes input standa ...

  7. 题解 CF546B Soldier and Badges

    CF546B Soldier and Badges 简单的贪心qwq 排个序,如果当前数与之前的数相重,已经用过,则加到一个之前没有用过的数 #include<cstdio> #inclu ...

  8. 【codeforces 546B】Soldier and Badges

    time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  9. Soldier and Badges (set的检索简单运用)

    Colonel has n badges. He wants to give one badge to every of his n soldiers. Each badge has a coolne ...

随机推荐

  1. editplus文本编辑器

    EditPlus中文破解版是一款功能强大的文本编辑器,拥有无限制的撤消与重做.英文拼字检查.自动换行.列数标记.搜寻取代.同时编辑多文件.全屏幕浏览功能.还有一个好用的功能,就是它有监视剪贴板的功能, ...

  2. 使用JSON的数据格式

      在说JSON之前,我们先来看一下在javascript中创建对象的方式,也就是创建对象的字面量表示法.我们知道js中有五种基本的数据类型,分别是: Undefined(变量可能没有声明或者赋值) ...

  3. PB数据类型转换表

    数据类型转换表     MICROSOFT            PB(16Bit)            PB(32Bit)    Bool                      Boolean ...

  4. C++函数的参数传递机制以及参数的类型选择

    C++primer之函数的参数传递以及参数的类型 一:函数的基本知识 (1)      函数要素:返回类型,函数名字,形参(参数之间用逗号隔开) (2)      函数调用机制:我们通过调用运算符来执 ...

  5. XAML中的Path

    利用Path创建图形的时候,如果path对象的Fill属性不设置,那么绘制出来的图形首尾是不连接的. 如果设置了Fill属性,当Fill的Color属性为Transparent时,图形也不会首尾连接: ...

  6. Ant学习---第一节:Ant安装和简单使用

    一.下载 ant 插件,路径如下: http://ant.apache.org/bindownload.cgi 二.安装 ant 插件,解压下载下来的 ant 插件,配置环境变量(最好系统环境变量), ...

  7. Oracle EBS中查询Profile的各种SQL【转载】

    1.List E-Business Suite Profile Option Values For All Levels SELECT p.profile_option_name SHORT_NAME ...

  8. ArrayList、LinkedList、Vector的区别

    Arraylist和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加插入元素,都允许直接序号索引元素,但是插入数据要涉及到数组元素移动等内存操作,所以插入数据慢,查找有下标, ...

  9. 添加swap分区

    1.创建swap文件,可以单独划分一个分区出来,也可以直接生成一个swap文件 dd if=/dev/zero of=swap bs=1M count=1024 2.格式化为swap文件 mkswap ...

  10. (转载)HTML:模拟链接被按下,在新标签页打开页面,不使用window.open(可能被拦截)

    原文: http://www.cppblog.com/biao/archive/2010/08/21/124196.html 当按下一个按钮时,想打开一个新的标签页,可以使用window.open去实 ...