博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
递推DP HDOJ 5328 Problem Killer
阅读量:6692 次
发布时间:2019-06-25

本文共 1181 字,大约阅读时间需要 3 分钟。

 

1 /* 2     递推DP: 如果a, b, c是等差数列,且b, c, d是等差数列,那么a, b, c, d是等差数列,等比数列同理 3             判断ai-2, ai-1, ai是否是等差(比)数列,能在O(n)时间求出最长的长度 4 */ 5 #include 
6 #include
7 #include
8 #include
9 using namespace std;10 11 typedef long long ll;12 const int MAXN = 1e6 + 10;13 const int INF = 0x3f3f3f3f;14 ll a[MAXN];15 int dp1[MAXN], dp2[MAXN];16 17 int main(void) { //HDOJ 5328 Problem Killer18 int T; scanf ("%d", &T);19 while (T--) {20 int n; scanf ("%d", &n);21 for (int i=1; i<=n; ++i) scanf ("%I64d", &a[i]);22 if (n <= 2) printf ("%d\n", n);23 else {24 for (int i=1; i<=n; ++i) dp1[i] = dp2[i] = 2;25 int ans = 2;26 for (int i=3; i<=n; ++i) {27 if (a[i-2] + a[i] == a[i-1] * 2) dp1[i] = dp1[i-1] + 1;28 if (a[i-2] * a[i] == a[i-1] * a[i-1]) dp2[i] = dp2[i-1] + 1;29 ans = max (ans, max (dp1[i], dp2[i]));30 }31 printf ("%d\n", ans);32 }33 }34 35 return 0;36 }

 

转载于:https://www.cnblogs.com/Running-Time/p/4691201.html

你可能感兴趣的文章
编程 -- awk
查看>>
2012 #3 Arcane Numbers
查看>>
python 列表模拟堆栰
查看>>
Linux-Centos5.3中文乱码问题解决
查看>>
linux分区学习[ CentOS ]
查看>>
aaa认证
查看>>
js JSON对象属性
查看>>
Linux-常用快捷键
查看>>
Java 如何产生UUID
查看>>
学习第3天
查看>>
c语言 拼接字符串
查看>>
实验:传输层:TCP协议
查看>>
gluon 实现多层感知机MLP分类FashionMNIST
查看>>
需求分析评价
查看>>
LeetCode – Refresh – Longest Substring with At Most Two Distinct Characters
查看>>
shell编程系列19--文本处理三剑客之awk中的字符串函数
查看>>
pytorch的函数中的dilation参数的作用
查看>>
数据排序
查看>>
HDU2504 又见GCD
查看>>
CenOS下安装jdk
查看>>