D. Longest Subsequence
来源:互联网 发布:销售数据分析怎么写 编辑:程序博客网 时间:2024/05/03 13:50
You are given array a with n elements and the number m. Consider some subsequence ofa and the value of least common multiple (LCM) of its elements. Denote LCM asl. Find any longest subsequence of a with the value l ≤ m.
A subsequence of a is an array we can get by erasing some elements ofa. It is allowed to erase zero or all elements.
The LCM of an empty array equals 1.
The first line contains two integers n andm (1 ≤ n, m ≤ 106) — the size of the arraya and the parameter from the problem statement.
The second line contains n integers ai (1 ≤ ai ≤ 109) — the elements ofa.
In the first line print two integers l andkmax (1 ≤ l ≤ m, 0 ≤ kmax ≤ n) — the value of LCM and the number of elements in optimal subsequence.
In the second line print kmax integers — the positions of the elements from the optimal subsequence in the ascending order.
Note that you can find and print any subsequence with the maximum length.
7 86 2 9 2 7 2 3
6 51 2 4 6 7
6 42 2 2 3 3 3
2 31 2 3
/*题目大意:给定n大小的数组a,求数组a的最长子序列的最小公倍数不超过m。要求输出其满足要求的任意子序列 *算法分析:先将小于等于m的数择出来,然后从后向前筛 */#include <bits/stdc++.h>using namespace std;typedef long long int llint;const int maxn = 1e6 + 100;llint a[maxn], b[maxn];int main() {memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));llint n, m, flag = 0;scanf("%I64d%I64d",&n, &m);for (llint i = 0; i<n; i++) {scanf("%I64d",&a[i]);if (a[i] <= m) {b[a[i]] ++ ;flag = 1;}}if (!flag)cout << "1 0" << endl;else {for (llint i = m; i>=1; i--) {for (llint j = 2*i; j<=m; j+=i) {b[j] += b[i];}}llint max = 0, lcm = 0;for (llint i = 1; i<=m; i++) {if (b[i] > max) {max = b[i];lcm = i;}}cout << lcm << " " << max << endl;for (llint i = 0; i<n; i++) {if (lcm%a[i] == 0)cout << i+1 << " " ;}cout << endl;}return 0;}
- D. Longest Subsequence
- cf#ecr9-D - Longest Subsequence
- Codeforces-632D Longest Subsequence
- Codeforces 632D Longest Subsequence
- CF 632D(Longest Subsequence-计数排序)
- CodeForces 632D Longest Subsequence(数论)
- Longest Subsequence codeforces 632D 暴力数学
- [杂题] Codeforces #632D Longest Subsequence
- Longest Subsequence CodeForces 632D 数学/筛法
- Longest Subsequence
- longest increasing continuous subsequence in a 2D matrix
- Educational Codeforces Round 9(D. Longest Subsequence(筛法))
- Educational Codeforces Round 9-D. Longest Subsequence(筛选法)
- Codeforces 632D Longest Subsequence 【求因子和变形】
- Educational Codeforces Round 9 D. Longest Subsequence CF632D
- longest common subsequence
- Longest Common Subsequence
- Longest Increasing Subsequence
- win10激活
- Gradle入门
- 使用python3自带工具2to3.py 转换 python2.x 代码 到python3
- 第七届ccf认证第四题 自己写的错误答案
- 特别关键字
- D. Longest Subsequence
- struts2 利用 POI 导出 excel
- 多线程中线程执行器java5
- Android Facebook和Twitter分享
- 判断 Android 设备是否已 ROOT
- 关键词定位
- 求n的因子的个数和。.
- solr入门之设计自己的Java本地缓存工具类
- hdu1754 I hate it【splay树】