E. Boxers

给定N个数字,每个数字可以加一或者减一

使得结果集合中不同数字个数最多

贪心

用桶装数

假如相同的数字$i$超过三个,则上面$i+1$,下面$i-1$都可以分一个

如果相同数字$i$只有两个,优先$i-1$

如果只有一个也要优先$i-1$

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define sc(x) scanf("%I64d",&x);
#define read(A) for(int i=0;i<4*N;i++) scanf("%I64d",&A[i]);
#define P pair<ll,ll>
ll N;
ll q;
ll A[];
bool B[];
int main()
{
sc(N);
for(int i=; i<N; i++)
{
sc(q);
A[q]++;
}
for(int i=; i<=; i++)
{
if(A[i]>=)
{
if(i>)
{
// A[i-1]++;
B[i-]=;
}
B[i]=;
B[i+]=;
}
else if(A[i]==)
{
if(i>&&B[i-]==)
{
B[i-]=;
}
else if(B[i+]==)
{
B[i+]=;
}
B[i]=;
}
else if(A[i]==)
{
//cout<<i<<B[i]<<endl;
if(i>&&B[i-]==)B[i-]=;
else if(B[i]==)B[i+]=;
else B[i]=;
}
}
int ans=;
for(int i=; i<=; i++)
{
if(B[i]){ans++;//cout<<i<<endl;
} }
cout<<ans<<'\n';
}

E. Boxers的更多相关文章

  1. CF #579 (Div. 3) E.Boxers

    E.Boxers time limit per test2 seconds memory limit per test256 megabytes inputstdin outputstdout The ...

  2. Codeforces Round #579 (Div. 3) E. Boxers (贪心)

    题意:给你一组数,每个数都可以进行一次加一减一,问最后最多能有多少不同的数. 题解:我们可以用桶存每个数的次数,然后枚举\([1,150001]\)来求对答案的贡献,然后贪心,这里我们不用担心其他乱七 ...

  3. bootstrap-validator使用

    bootstrap-validator是一款与bootstrap相结合的表单前端验证模块,官方网址:http://1000hz.github.io/bootstrap-validator/ 下面内容大 ...

  4. 1.1 NCE21 Daniel Mendoza

    1.text translation Two hundred years ago, boxing matches were very popular in England. At that time/ ...

  5. NCE3

    Lesson1  A puma at large Pumas are large, cat-like animals which are found in America. When reports ...

  6. New Concept English three(21)

    27W 59 Boxing matches were very popular in England two hundred years ago. In those days, boxers foug ...

  7. lesson 21 Daniel Mendoza

    lesson 21 Daniel Mendoza bare 赤裸的 :boxers fought with bare fists crude 天然的:crude sugar, crude oil 粗俗 ...

  8. codeforces #579(div3)

    codeforces #579(div3) A. Circle of Students 题意: 给定一个n个学生的编号,学生编号1~n,如果他们能够在不改变顺序的情况下按编号(无论是正序还是逆序,但不 ...

  9. Codeforces Round #579 (Div. 3)

    Codeforces Round #579 (Div. 3) 传送门 A. Circle of Students 这题我是直接把正序.逆序的两种放在数组里面直接判断. Code #include &l ...

随机推荐

  1. MySQL-快速入门(10)触发器

    1.什么是触发器 触发器是与表有关的命名数据库对象.触发器由事件来触发某个操作. 触发器是特殊的存储过程,触发器不需要call语句来调用,也不需要手工启动,只需要确定一个预定义的事件发生的时候,就会被 ...

  2. C#基础篇之C#和 .Net框架的概念和运行原理

    一.微软平台的发展史 二..Net框架包含的东西 1.名词解释 BCL:基类库(Base Class Library)系统和底层提供的最基本的类库 CLR:公共语言运行时(Common Languag ...

  3. webpack e6转化成es5 配置方法

    方法一: https://www.babeljs.cn/setup#installation 按照babel官方的配置配 方法二: https://www.jianshu.com/p/ce28cedd ...

  4. 秒懂Vuejs、Angular、React原理和前端发展历史

    「前端程序发展的历史」 「 不学自知,不问自晓,古今行事,未之有也 」 我们都知道现在流行的框架:Vue.Js.AngularJs.ReactJs,已经逐渐应用到各个项目和实际应用中,它们都是MVVM ...

  5. java基础语法详细介绍

    一.概述 1.java语言概述 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言; java之父---James Goslin ...

  6. jQuery之筛选方法

    1. 父parent.子children.find <div class="yeye"> <div class="father"> &l ...

  7. 自定义ajax函数(仿照jQuery)

    AJAX介绍 AJAX = 异步 JavaScript 和 XML. 全称:Asynchronous Javascript And XML: AJAX 是一种用于创建快速动态网页的技术. 通过在后台与 ...

  8. Spring基础18——通过注解配置bean之间的关联关系

    1.组件装配 <context:component-scan>元素还会自动注册AutowiredAnnotaionBeanPostProcessor实例,这是一个bean的后置处理器,该实 ...

  9. SQL SERVER BCP导入导出

    bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据.bcp可以将数据库的表或视图直接导出,也能通过SELECT ...

  10. PCA 主成分分析

    链接1 链接2(原文地址) PCA的数学原理(转) PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表 ...