news 2026/11/6 7:00:23

《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/11/6 3:09:59

30、Shell脚本编写与Bash安装指南

Shell脚本编写与Bash安装指南 1. Shell脚本编写最佳实践 在编写Shell脚本时,我们不仅要让代码完成任务,还要确保其具有可维护性,遵循良好的编程实践。 1.1 代码可读性 编写脚本时,代码的可读性至关重要。例如,六个月前编写的100行脚本,现在可能自己都难以理解其功能。…

作者头像 李华
网站建设 2026/11/5 4:01:46

31、Bash使用与相关Shell比较全解析

Bash使用与相关Shell比较全解析 1. Bash配置与测试 在Bash的使用过程中,配置和测试是重要的环节。 - 配置选项 : disabled-builtins 和 xpg-echo-default 选项默认是禁用的,其他选项则是启用的。很多其他的Shell特性可以通过修改 config-.top.h 文件来开启或关闭…

作者头像 李华
网站建设 2026/11/5 19:58:08

33、Bash 环境变量、操作符及选项全解析

Bash 环境变量、操作符及选项全解析 在使用 Bash 进行编程和操作时,了解其内置的环境变量、测试操作符、 set 选项、 shopt 选项以及 I/O 重定向等知识至关重要。以下将详细介绍这些内容。 内置 shell 变量 Bash 3.0 中有一系列内置的环境变量,这些变量在不同的场景下…

作者头像 李华
网站建设 2026/11/5 4:02:22

前端环境配置(nvm、nodejs、npm)

一、安装nvm 1. 下载vnm url: https://nvm.uihtm.com/doc/download-nvm.html 2. 解压文件后双击exe文件进行安装 ​ ​ 3. 选择nvm的安装地址&#xff0c;我是安装在D:\App\nvm ​ 4. 选择nodejs的安装地址&#xff0c;我是安装在C:\Program Files\nodejs ​ 5. 点击next 一直…

作者头像 李华
网站建设 2026/11/5 6:21:15

RK3588语音AI部署终极指南:算子兼容性深度优化与实战解决方案

RK3588语音AI部署终极指南&#xff1a;算子兼容性深度优化与实战解决方案 【免费下载链接】sherpa-onnx k2-fsa/sherpa-onnx: Sherpa-ONNX 项目与 ONNX 格式模型的处理有关&#xff0c;可能涉及将语音识别或者其他领域的模型转换为 ONNX 格式&#xff0c;并进行优化和部署。 …

作者头像 李华
网站建设 2026/11/5 5:37:54

EmotiVoice语音好奇感模拟促进知识探索

EmotiVoice语音好奇感模拟促进知识探索 在AI助手越来越频繁地出现在我们生活中的今天&#xff0c;一个明显的问题浮出水面&#xff1a;为什么大多数语音交互仍然让人感觉“冷冰冰”&#xff1f;无论是车载导航的一板一眼&#xff0c;还是智能音箱千篇一律的回答&#xff0c;用户…

作者头像 李华