news 2026/4/18 3:33:46

《CF632D Longest Subsequence》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《CF632D Longest Subsequence》

题目描述

给定有 n 个元素的数组 a 和数字 m。记 LCM 为 l 。找出使 l≤m 的 a 的最长子序列。

定义 a 的子序列为通过删除 a 中的一些元素得到的数组。允许删除 0 个元素或所有元素。

空数组的 LCM 等于 1。

输入格式

第一行包含两个整数 n 和 m ( 1≤n,m≤106 ) — 数组 a 的大小和题目描述中的参数。

第二行包含 n 个整数 ai​ ( 1≤ai​≤109 ) — a 的元素。

输出格式

第一行打印两个整数 l 和 kmax​ ( 1≤l≤m,0≤kmax​≤n ) — LCM 的值和最优子序列中的元素数量。

第二行打印 kmax​ 个整数 — 按升序排序输出元素。

请注意,您可以找到并打印任何具有最大长度的子序列。

显示翻译

题意翻译

输入输出样例

输入 #1复制

7 8 6 2 9 2 7 2 3

输出 #1复制

6 5 1 2 4 6 7

输入 #2复制

6 4 2 2 2 3 3 3

输出 #2复制

2 3 1 2 3

代码实现:

#include <iostream> #include <vector> #include <set> #include <algorithm> using namespace std; const int mx = 1000005; int ct[mx]; vector<int> vec[mx]; void writeln(int val) { cout << val << endl; } int main() { int n, m; cin >> n >> m; for (int i = 1; i <= n; ++i) { int x; cin >> x; if (x <= m) vec[x].push_back(i); } for (int i = 1; i <= m; ++i) for (int j = 1; i * j <= m; ++j) ct[i * j] += vec[i].size(); int p = max(int(max_element(ct + 1, ct + m + 1) - ct), 1); set<int> res; // 替换auto为vector迭代器 for (int i = 1; i <= p; ++i) { if (p % i == 0) { for (vector<int>::iterator it = vec[i].begin(); it != vec[i].end(); ++it) { res.insert(*it); } } } cout << p << " "; writeln(res.size()); bool f = true; // 替换auto为set迭代器 for (set<int>::iterator it = res.begin(); it != res.end(); ++it) { if (!f) cout << " "; f = false; cout << *it; } if (!res.empty()) cout << endl; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:31:37

数据中台在大数据领域的行业应用对比

数据中台在大数据领域的行业应用对比关键词&#xff1a;数据中台、大数据、行业应用、数据治理、数据资产、数字化转型、跨行业对比摘要&#xff1a;本文系统分析数据中台在零售、金融、制造、医疗、物流等核心行业的应用差异与共性&#xff0c;通过技术架构解析、典型案例对比…

作者头像 李华
网站建设 2026/4/13 14:50:24

初学者必备:IDEA如何快速查看一个方法的功能(查看文档)

作为Java开发初学者&#xff0c;在使用IntelliJ IDEA敲代码时&#xff0c;你是不是经常遇到不熟悉的方法&#xff0c;不知道它的功能、参数含义和返回值&#xff1f;每次都去浏览器搜既浪费时间&#xff0c;又会打断编码思路。其实IDEA自带了多种快速查看方法文档的神器功能&am…

作者头像 李华
网站建设 2026/4/17 16:04:21

35、深入探索Bash编程:符号、命令与环境的全面解析

深入探索Bash编程:符号、命令与环境的全面解析 1. 符号与运算符 在Bash编程中,各种符号和运算符扮演着至关重要的角色,它们是实现复杂功能的基础。以下是一些常见符号及其功能: - 逻辑与运算符(&&) :用于逻辑与操作,例如在条件判断中,只有当两个条件都为…

作者头像 李华
网站建设 2026/4/17 14:34:05

Lucky反向代理实战指南:从零到精通的完整配置教程

Lucky反向代理实战指南&#xff1a;从零到精通的完整配置教程 【免费下载链接】lucky 软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,阿里云盘,ftp,webdav,filebrowser 项目地址: https://gitcode.com/GitHub_Trending/luc/lucky …

作者头像 李华
网站建设 2026/4/16 12:01:21

珠联璧合:PyTorch与Ascend C自定义算子的深度融合工程

在昇腾AI算子的生态融合中&#xff0c;PyTorch与Ascend C的结合不是简单的API封装&#xff0c;而是计算栈的重新设计。本文将带你深入算子注册、自动微分、图模式入图的全链路&#xff0c;构建一套既保持PyTorch动态图灵活性又发挥NPU硬件性能的算子集成体系。 目录 摘要 一、…

作者头像 李华
网站建设 2026/4/13 10:52:23

SharedArrayBuffer is not defined

Uncaught ReferenceError: SharedArrayBuffer is not defined这个错误通常是因为浏览器的安全策略限制导致的。SharedArrayBuffer 错误原因SharedArrayBuffer 需要特殊的浏览器安全设置才能使用&#xff0c;主要是因为安全漏洞&#xff08;如 Spectre 攻击&#xff09;的原因&a…

作者头像 李华