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