Codeforce 题目264B Good Sequences(DP,相邻两数不互质的LIS)
来源:互联网 发布:手机电筒软件下载 编辑:程序博客网 时间:2024/06/06 08:23
Squirrel Liss is interested in sequences. She also has preferences of integers. She thinks n integers a1, a2, ..., an are good.
Now she is interested in good sequences. A sequence x1, x2, ..., xk is called good if it satisfies the following three conditions:
- The sequence is strictly increasing, i.e. xi < xi + 1 for each i (1 ≤ i ≤ k - 1).
- No two adjacent elements are coprime, i.e. gcd(xi, xi + 1) > 1 for each i (1 ≤ i ≤ k - 1) (where gcd(p, q) denotes the greatest common divisor of the integers p and q).
- All elements of the sequence are good integers.
Find the length of the longest good sequence.
The input consists of two lines. The first line contains a single integer n (1 ≤ n ≤ 105) — the number of good integers. The second line contains a single-space separated list of good integers a1, a2, ..., an in strictly increasing order (1 ≤ ai ≤ 105; ai < ai + 1).
Print a single integer — the length of the longest good sequence.
52 3 4 6 9
4
91 2 3 5 6 7 8 9 10
4
In the first example, the following sequences are examples of good sequences: [2; 4; 6; 9], [2; 4; 6], [3; 9], [6]. The length of the longest good sequence is 4.
ac代码
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<stdlib.h>#include<vector>#define maxn 100005using namespace std;vector<int>vc[maxn];void init(){ int i,j; for(i=2;i<=maxn;i++) { for(j=i;j<=maxn;j+=i) vc[j].push_back(i); }}int a[maxn],dp[maxn];int main(){ init(); int n; while(scanf("%d",&n)!=EOF) { int i; memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) scanf("%d",&a[i]); vector<int>:: iterator it; for(i=1;i<=n;i++) { int temp=0; for(it=vc[a[i]].begin();it!=vc[a[i]].end();it++) { temp=max(temp,dp[*it]); } for(it=vc[a[i]].begin();it!=vc[a[i]].end();it++) { dp[*it]=temp+1; } } int ans=1; for(i=0;i<=maxn;i++) ans=max(ans,dp[i]); printf("%d\n",ans); }}
- Codeforce 题目264B Good Sequences(DP,相邻两数不互质的LIS)
- Codeforces 264B Good Sequences (dp)
- codeforces 264b Good Sequences dp
- codeforces #264B Good Sequences (dp)
- CodeForces 264B Good Sequences dp
- Codeforces 264B Good Sequences【dp+思维】
- codeforce 246B——Good Sequences
- codeforces 264B B. Good Sequences(dp+数论)
- codeforces 264B Good Sequences(DP+灵活思维)【最长不互质序列模板】
- Codeforces 264B (Good Sequences)
- Codeforcrs 264B Good Sequences
- Good Sequences(codeforces 264B)
- codeforces 264B Good Sequences
- DP Good Sequences
- Codeforce 450B Jzzhu and Sequences
- poj 1239 Increasing Sequences dp lis
- CF #div.1 B.good sequences
- Codeforces 265D Good Sequences 贪心+DP
- 延迟加载页面的例子
- 第十六周项目一----希尔排序
- 程序员需要克服的10大障碍
- 南邮编程在线编程题二十:字符串转换
- bzoj2561 最小生成树
- Codeforce 题目264B Good Sequences(DP,相邻两数不互质的LIS)
- HTTP协议之:报文详解
- hdu 2457(AC自动机+DP)
- 第十五周(项目二)之哈希法组织关键字
- opencv split和merge操作
- 用ajax实现注册页面一些处理
- 十六周项目一----冒泡排序
- c语言简单设计
- 编程很没劲,除非你……