https://www.luogu.org/problemnew/show/CF379C

一道水题,折腾了我好久!

解题:

先排序,从小到大挨个满足客户,把最终rating放进集合里,判断是否已经给出,如果这个期望rating已经存在,那么取集合里最大的rating+1,既要满足期望,又不能重复,从小到大排序,每次取最大+1;

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<string>
#include<vector>
#include<iostream>
#include<set>
#include<cstring>
#include<queue>
#define inf 0x3f3f3f3f
#define ll long long
using namespace std; int n;
struct node
{
int x;///原来的数据
int id;
};
node a[]; bool cmp1(node p1,node p2)
{
return p1.x<p2.x; }
bool cmp2(node p1,node p2)
{
return p1.id<p2.id;
} int main()
{
while(scanf("%d",&n)!=EOF)
{
for(int i=;i<n;i++)
scanf("%d",&a[i].x),a[i].id=i;
sort(a,a+n,cmp1);
set<int>se;
se.insert(a[].x);
set<int>::iterator it;
for(int i=;i<n;i++)
{
it=se.end();
it--;
if( se.count(a[i].x) )///该x已经在set里
{
a[i].x=*it+;
}
se.insert(a[i].x);
} sort(a,a+n,cmp2);
for(int i=;i<n;i++)
printf("%d ",a[i].x);
printf("\n");
}
return ;
}

CF379C

最新文章

  1. [LINK]OpenResty
  2. Climbing Stairs
  3. try-catch和throw,throws的区别和联系
  4. 8款超酷实用的CSS3 Tab菜单集合
  5. Android 自定义View修炼-高仿猎豹清理大师自定义内存开口圆环比例进度View
  6. Photoshop快捷键
  7. 【iOS开发之C语言】sprintf,strncpy,strcmp三个函数的区别
  8. Delphi + Asm - TBits类的学习
  9. C#开发Linux守护进程
  10. 计算器的单元测试dome
  11. java 之 命令模式(大话设计模式)
  12. VS2015|Visual Studio Enterprise 2015简体中文版(企业版)
  13. 用主题模型可视化分析911新闻(Python版)
  14. ElasticSearch 分组查询的几个例子
  15. golang 特殊知识点
  16. JAVA单链表的实现-不带头结点且没有尾指针
  17. Centos7与Windows10添加Windows10启动项并设置为默认启动
  18. js处理时间时区问题
  19. idea maven 创建webapp项目没有src目录
  20. 深入学习 Git 工作流

热门文章

  1. golang开始篇
  2. VBA对象模型
  3. 基于 DNS 动态发现方式部署 Etcd 集群
  4. 基准测试工具:Wrk初识
  5. asp.net core mvc 集成miniprofiler
  6. asp.net core 系列之允许跨域访问-1(Enable Cross-Origin Requests:CORS)
  7. HTML转换特效相关插件
  8. 用python完成排序算法
  9. android shap画圆(空心圆、实心圆)
  10. 07-组件通信、slot插槽