C - AtCoder Magics

news/2024/11/16 21:31:10/文章来源:https://www.cnblogs.com/lightsong/p/18200913

C - AtCoder Magics

https://atcoder.jp/contests/abc354/tasks/abc354_c

 

思路

首先按照a属性对数列进行排序,大的在前,小的在后,  完成后, 则数列在a参数上是非递增的。

如下图中x轴对应 a 参数, y轴对应c参数,

discard条件,实际上是找出 数列 对于c参数 沿着 a 参数非递减的点,

如下图中两个 非圆圈住的点,

要找出这些点, 可以构造 c 参数的下降曲线, 由下图中 圆圈 点 构成, 利用  最小前缀 存储 prefix_min[n],

最后遍历一遍, 将当前点的c值 跟 前一个 prefix_min 比较, 大于则为目标点,需要discard掉。

 

 

 

 

 

Code

https://atcoder.jp/contests/abc354/submissions/53680994

long long n;struct NODE{long long a;long long c;long long i;long long prefix_min;
};bool cmp(struct NODE& x, struct NODE& y)
{return x.a > y.a;
}vector<struct NODE> container;int main()
{cin >> n;for(int i=1; i<=n; i++){struct NODE one;cin >> one.a;cin >> one.c;one.i = i;container.push_back(one);}sort(container.begin(), container.end(), cmp);//    for(auto one: container){
//        cout << "a = " << one.a << endl;
//    }for(int i=0; i<n; i++){struct NODE& one = container[i];if (i == 0){one.prefix_min = one.c;} else {struct NODE& pre = container[i-1];one.prefix_min = min(one.c, pre.prefix_min);}}vector<bool> drop(n, false);for(int i=1; i<n; i++){if (container[i].a == container[i-1].a){continue;}if (container[i].c > container[i-1].prefix_min){drop[i] = true;}}//    vector<struct NODE> left;set<long long> leftidx;for(int i=0; i<n; i++){if (drop[i]){continue;}//        left.push_back(container[i]);
leftidx.insert(container[i].i);//        cout << "a = " << container[i].a << endl;
//        cout << "i = " << container[i].i << endl;
    }cout << leftidx.size() << endl;for(auto one: leftidx){cout << one << " ";}cout << endl;return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/708968.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

『手撕Vue-CLI』添加自定义指令

前言 经上篇『手撕Vue-CLI』添加帮助和版本号的介绍之后,已经可以在控制台中输入 nue --help 来查看帮助信息了,但是在帮助信息中只有 --version,--help 这两个指令,而 vue-cli 中还有很多指令,例如 create,serve,build 等等,所以本章将继续添加自定义指令,例如 creat…

Web入门

SQL注入 数据库基础 *关系型数据库: #Access#MSSQL -- 1433*非关系型数据库: #MySQL -- 3306#Oracle -- 1521等对MySQL数据库的操作 1.显示数据库 show databases;2.显示数据库版本 select version(); 3.使用数据库 use XXX;4.显示当前正在使用的数据库 selec…

Linux常用命令-文件目录命令

Linux常用命令-文件目录命令1.目录命令 1.1、ls命令:显示目录下的内容 基本格式 [root@localhost ~]# ls [选项] [参数是文件名或目录名]常用选项 -a:显示所有文件。 --color=when。支持颜色输出,when的值默认是always(总显示颜色),never(不显示颜色)和auto(自动)。 -d:显…

asdf

asf本文版权归作者和博客园共有,欢迎转载,转载请注明原文链接:https://www.cnblogs.com/lllliuxiaoxia/p/18200863另外欢迎关注公众号,一起讨论学习

啊手动阀手动阀

阿斯顿发射点发射点发生发射点发撒打发本文来自博客园,作者:胖树,转载请注明原文链接:https://www.cnblogs.com/lllliuxiaoxia/p/18200857关注我的公众号不定期推送资讯

配置SQLServer远程连接

要在 SQL Server 上启用远程连接,需要执行以下步骤:1、确保 SQL Server 已启用远程连接:  登录到 SQL Server 所在的计算机上。  打开 SQL Server Management Studio (SSMS)。  使用 Windows 身份验证或 SQL Server 身份验证登录 SQL Server。  在左侧的对象资源管理…

uCTRL论文阅读笔记

uCTRL: Unbiased Contrastive Representation Learning via Alignment and Uniformity for Collaborative Filtering论文阅读笔记 这篇文章应该是关于无偏推荐的 Abstract ​ 由于协作过滤(CF)模型的隐式用户反馈偏向于流行的项目,CF模型倾向于产生带有流行偏差的推荐列表。…

SQL Server 2012提供了多种备份和还原数据库的方法,包括以下几种:

SQL Server 2012提供了多种备份和还原数据库的方法,包括以下几种:SQL Server Management Studio(SSMS):SSMS是一个支持图形用户界面的工具,可以通过它备份和还原整个数据库或特定的数据表、视图等。在SSMS中,可以通过右键单击数据库并选择“任务” > “备份”或“还原…

BUUCTF-WEB(15-20)

[极客大挑战 2019]BabySQL 打开题目就试了试万能密码,是不行的推测应该做了过滤 我们密码框输入1 1 or 1=1试试发现我们的or没了,union,select,where都被过滤了,应该是被替换成空字符,所以我们可以双写绕过 uunionnion sselectelect wwherehere由于这里or被过滤了,我们无…

11个国内外免费域名解析服务

11个国内外免费域名解析服务 一般域名使用注册商提供的域名解析服务虽然方便,但功能大多有限,特别是目前国内还会针对某些DNS服务器进行屏蔽,造成网站无法解析的情况出现,因此,使用第三方域名解析服务也是中国网站的必要选择,这里就介绍一些常见的免费域名解析服务。 域名…

5/19/2024 测试

10pts 拿下 D1!挂分挂了 290pts! 痛失 rk3总结P 都不是,(本人)成绩构思依托(10pts)。 有重题,而且是同一场比赛出现两道 一模一样 的题(T1 && T4)题目 & 题解 T1 Color Description 有 \(n\) 个球排成一列,每个球都有一个颜色,用 \(A \sim Z\) 的大写字…