问题标题: 酷町堂:5098 等比子序列

0
0
已解决
王子健
王子健
初级天翼
初级天翼

尼玛最近学搜索给我头搞爆掉了,上课总是可以积极回答并理解,但做作业就不太那啥了......你们懂得

5097   等差子序列

题目描述 Description

求一个序列中最长公差为d的等差子序列的长度。n<=100000

例如:
d=3
1 2 4 6 9 12 15 3
该序列的最长公差为2的子序列是6 9 12 15 长度为4

输入描述 Input Description

第一行输入一个正整数n和子序列的等差值d
第二行输入含n个正整数序列;

输出描述 Output Description

输出最长公差为d的等差子序列的长度

样例输入 Sample Input

8 3 1 2 5 6 9 12 15 3

样例输出 Sample Output

4

数据范围及提示 Data Size & Hint

n<40000

这道题我本身准备用枚举的方法做:

#include <iostream>
#include <cstdio>
using namespace std;
int a[40005], ans;
int main() {
    int n, d;
    cin >> n >> d;
    for (int i=1; i<=n; i++) {
        cin >> a[i];
    } 
    for (int i=1; i<=n; i++) {
        for (int j=i+1; j<=n; j++) {
            if (a[j] - a[i] == d) {
                ans ++;
            }
        }
    }
    cout << ans;
    return 0;
}

可想而知0分了

会全部代码的加我Q:1708262261

不会的给思路就行了,谢谢了

王子健在2020-05-19 17:02:33追加了内容

这道题已经完美写出,问一下5098

求一个序列中最长的等比为p的等比子序列的长度。n<=100000

例如:
p=2
1 2 4 6 9 12 15 3
该序列的最长公比为d的子序列是1 2 4 长度为3

输入描述 Input Description

第一行输入一个正整数n和子序列的等比值p
第二行输入含n个正整数序列;

输出描述 Output Description

输出最长公比为p的等差子序列的长度

样例输入 Sample Input

8 2 1 2 4 6 9 12 15 3

样例输出 Sample Output

3

数据范围及提示 Data Size & Hint

n<20000


0
已采纳
徐子玄
徐子玄
初级光能
初级光能

这题要用线性dp中的记忆化搜索,要用dfs的,没你想得那么简单!!!

徐子玄在2020-05-19 21:25:43追加了内容
  • int dfs(int i) {
  • int mx=-1;
  • if(f[i]!=-1)
  • return f[i];
  • for(int j=1;j<i;j++)
  • if(a[i]==a[j]*p)
  • mx=max(mx,dfs(j));
  • if(mx==-1) {
  • f[i]=1;
  • return 1;
  • }
  • else {
  • f[i]=mx+1;
  • return mx+1;
  • }
  • }
  • 上面是dfs部分,主函数先输入,再把f数组置-1。最后定义 ans=-1,循环1~n,每一次ans=max(ans,dfs(i));
  • AC
徐子玄在2020-05-19 21:33:12追加了内容

如果感兴趣,做一下5097等差字符串,只要把dfs中的*改成+,数组定大点就AC了!!!

徐子玄在2020-05-24 14:18:42追加了内容

这是我的作业,5097,5098两道题我都AC了,都是用线性DP+记忆化。求采纳!!!

0
0
邓涵睿
邓涵睿
中级天翼
中级天翼

我都采纳你了,你采纳我吧,已关注

0
许金夫
许金夫
初级天翼
初级天翼

我比你好一点,作业勉勉强强WA50

0
沈峻宇
沈峻宇
资深天翼
资深天翼

一个贴不能发多个问题哦!我不举报,你采纳我

0
黄子扬
黄子扬
初级天翼
初级天翼

等比数列=等差数列该符号+整比判断(int)

s[j]/s[i]==d&&s[j]%s[i]==0

 

0
董宇昊
董宇昊
初级启示者
初级启示者

你是不是让人给你发全部代码?

会全部代码的加我Q:1708262261

是不是想死

为了酷町问答的和平,我不想举报你

我要回答