传送门

Description:

松鼠丽丝特别喜欢n个她称之为“好整数”的整数:a1,a2,……,an。(会输入)

现在,她对“好序列”很感兴趣。如果一个序列x1,x2,...,xk能够满足一下三个条件,那就是一个“好序列”:

1.该序列是严格上升的,即x[i]<x[i+1](1<=i<=k-1)

2.任意两个相邻的元素是非互质的,即gcd(x[i],x[i+1])>1 (1<=i<=k-1) (gcd即最大公约数)

3.所有的数字都是“好整数”

现在,请你找出长度最长的“好序列”

暴力DP解法:(当然不是AC做法)

  就是很像导弹拦截

  dp[i]表示以编号为i的好数结尾的最长好序列

  枚举判断转移就OK啦

 #include<iostream>
#include<cstdio>
#include<algorithm>
#define R register
#define go(i,a,b) for(R int i=a;i<=b;i++)
#define ll long long
#define M 100000
using namespace std;
int read()
{
int x=,y=;char c=getchar();
while(c<''||c>'') {if(c=='-') y=-;c=getchar();}
while(c>=''&&c<='') {x=(x<<)+(x<<)+c-'';c=getchar();}
return x*y;
}
int n,a[M],dp[M],ans;
int gcd(int x,int y)
{
return x%y==?y:gcd(y,x%y);
}
int main()
{
n=read();
go(i,,n) a[i]=read(),dp[i]=;
sort(a+,a+n+);
go(i,,n)
{
go(j,,i-) if(gcd(a[i],a[j])>) dp[i]=max(dp[i],dp[j]+);
ans=max(ans,dp[i]);
}
printf("%d",ans);
}

暴力DP Code

正解:

  之前的n2转移是枚举判断两个数是否互质

  如果两个数之间不互质其实就是有除了1以外的公因数

  我们发现a[i]是小于等于105

  所以可以记录b[i]为以i为因数的好数结尾的好序列的最大长度

  具体见代码 很好懂的啦

CODE:

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define R register
#define go(i,a,b) for(R int i=a;i<=b;i++)
#define ll long long
#define M 100000+10
using namespace std;
int read()
{
int x=,y=;char c=getchar();
while(c<''||c>'') {if(c=='-') y=-;c=getchar();}
while(c>=''&&c<='') {x=(x<<)+(x<<)+c-'';c=getchar();}
return x*y;
}
int n,a[M],b[M],dp[M],ans;
int main()
{
n=read();
go(i,,n) a[i]=read(),dp[i]=;
sort(a+,a+n+);
go(i,,n)
{
int x=a[i],maxn=sqrt(a[i])+;
go(j,,maxn)
{
if(x%j==) dp[i]=max(dp[i],b[j]+);
while(x%j==) x/=j;
}
if(x>) dp[i]=max(dp[i],b[x]+);
x=a[i];
go(j,,maxn)
{
if(x%j==) b[j]=dp[i];
while(x%j==) x/=j;
}
if(x>) b[x]=dp[i];
ans=max(ans,dp[i]);
}
printf("%d",ans);
}

CF264B Good Sequences的更多相关文章

  1. 【题解】CF264B Good Sequences

    [题解]CF264B Good Sequences 具有很明显的无后效性. 考虑\(dp\). 考虑初始条件,显然是\(dp(0)=0\) 考虑转移,显然是\(dp(t)=max(dp[k])+1\) ...

  2. 洛谷CF264B Good Sequences dp

    解题报告:dp+数论 解题报告: 传送门! 开始看这题的时候想挂了,,,想了个显然是错解的想法,,,就是,我也不知道我怎么想的,鬼迷心窍地就想开个数组存每个质因数的倍数的出现次数,然后排下序的max就 ...

  3. [LeetCode] Repeated DNA Sequences 求重复的DNA序列

    All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACG ...

  4. [Leetcode] Repeated DNA Sequences

    All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACG ...

  5. 论文阅读(Weilin Huang——【AAAI2016】Reading Scene Text in Deep Convolutional Sequences)

    Weilin Huang--[AAAI2016]Reading Scene Text in Deep Convolutional Sequences 目录 作者和相关链接 方法概括 创新点和贡献 方法 ...

  6. leetcode 187. Repeated DNA Sequences 求重复的DNA串 ---------- java

    All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACG ...

  7. [UCSD白板题] Longest Common Subsequence of Three Sequences

    Problem Introduction In this problem, your goal is to compute the length of a longest common subsequ ...

  8. Python数据类型之“序列概述与基本序列类型(Basic Sequences)”

    序列是指有序的队列,重点在"有序". 一.Python中序列的分类 Python中的序列主要以下几种类型: 3种基本序列类型(Basic Sequence Types):list. ...

  9. Extract Fasta Sequences Sub Sets by position

    cut -d " " -f 1 sequences.fa | tr -s "\n" "\t"| sed -s 's/>/\n/g' & ...

随机推荐

  1. jQuery : 有关TypeError: invalid ‘in’ operand obj的错误

    参考 lwx2615 的博客 ,网站:  http://blog.csdn.net/lwx2615/article/details/9668777 由PHP返回一个json数据 $.ajax({ ur ...

  2. CentOS7无法使用tab补全功能??

    Centos7在使用最小化安装的时候,没有安装自动补全的包,需要自己手动安装. yum -y install bash-completion 或者你可以安装一些初始化的包组 yum -y groupi ...

  3. JVM学习笔记(一):Java内存区域

    由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分.在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: 首先Java源代码文件(. ...

  4. 题解 P1208 【[USACO1.3]混合牛奶 Mixing Milk】

    其实根本没有一楼dalao描述的那么麻烦...... 一楼dalao其实吧,采用了一种纯属模拟的方式. 下面是我的大跃进思想 但是一个个地做减法是不是太慢了?(大跃进思想) 于是我们是不是可以直接进行 ...

  5. BZOJ3836 [Poi2014]Tourism 【树形dp +状压dp】

    题目链接 BZOJ3836 题解 显然这是个\(NP\)完全问题,此题的解决全仗任意两点间不存在节点数超过10的简单路径的性质 这意味着什么呢? \(dfs\)树深度不超过\(10\) \(10\)很 ...

  6. 洛谷 P2473 [SCOI2008]奖励关 解题报告

    P2473 [SCOI2008]奖励关 题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出\(k\)次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝 ...

  7. 20165218 《网络对抗技术》Exp2 后门原理与实践

    Exp2 后门原理与实践 准备工作 1. 查看Linux和Win的IP地址,ping通 Linux地址 Win7地址 ping 2.下载ncat并装载到win7主机 3.下载socat并装载到win7 ...

  8. [USACO10OPEN]牛跳房子Cow Hopscotch

    题目描述 奶牛们正在回味童年,玩一个类似跳格子的游戏,在这个游戏里,奶 牛们在草地上画了一行N个格子,(3 <=N <= 250,000),编号为1..N. 就像任何一个好游戏一样,这样的 ...

  9. 2018 ACM-ICPC 中国大学生程序设计竞赛暨丝绸之路程序设计竞赛

    三道大水题,其它题都不会做,真是尴尬和无奈啊…… 有想法,但是解决不了,感觉个人不会一些基本解法,终究还是个人学习的内容太少了 B. Goldbach /* 数值较小,<2^63,分解的两个素数 ...

  10. FPGA/SOPC学习转载

    转自小時不識月http://www.cnblogs.com/yuphone/archive/2010/08/27/docs_plan.html 新网址为:http://andrewz.cn [连载计划 ...