美文网首页
子序列种类和

子序列种类和

作者: 优劣在于己 | 来源:发表于2020-10-26 14:58 被阅读0次

有同种类型的两题,一种是整数型的数组,一种是字符型的字符串
数组版:
有 n 个数字 a1、a2、a3...an,求子序列和

如:
4
1 2 1 3

子序列有
{1},{1,2},{1,2,1},{1,2,1,3}
{2},{2,1},{2,1,3}
{1},{1,3}
{3}
种类和{1+2+2+3}+{1+2+3}+{1+2}+{1}=18

思路:直接求单个数字的贡献,直接上代码吧

#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;
#define pii pair<int,int>
const int maxn=10005;
int a[maxn];
int vis[maxn];
int main(){
    ios::sync_with_stdio(false);//加速的
    memset(vis,0,sizeof vis);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    int ans=0;
    for(int i=1;i<=n;i++){
        ans+=(i-vis[a[i]])*(n-i+1);
        vis[a[i]]=i;//标记每次出现后的位置
    }
    cout<<ans<<endl;
    return 0;
}

字符串原理一样,直接上例子和代码:

输入

abac

输出

18

代码

#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;
#define pii pair<int,int>
const int maxn=10005;
int vis[maxn];
char s[maxn];
int main(){
    ios::sync_with_stdio(false);//加速的
    memset(vis,0,sizeof vis);
    cin>>s+1;
    int n=strlen(s+1),ans=0;
    for(int i=1;i<=n;i++){
        ans+=(i-vis[s[i]-'a'])*(n-i+1);
        vis[s[i]-'a']=i;//标记每次出现后的位置
    }
    cout<<ans<<endl;
    return 0;
}

相关文章

  • 子序列种类和

    有同种类型的两题,一种是整数型的数组,一种是字符型的字符串数组版:有 n 个数字 a1、a2、a3...an,求子...

  • 最长递增子序列: 动态规划和LCS(最长公共子序列)

    最长递增子序列: 动态规划和LCS(最长公共子序列)子序列和子串的区别:子序列不连续,字串连续。这个题两种解法 动...

  • 算法(04)动态规划

    零钱问题 背包问题 最长公共子序列 最长公共子串 最长上升子序列 最大连续子序列和

  • Rosalind: 兔子与递归

    问题描述 序列 指的是一组对象的集合,其中允许重复。序列分为有限序列和无限序列两种类型,我们通常用 表示序列中的...

  • 最长公共子序列和最长公共子串

    最长公共子序列和最长公共子串区别 最长公共子串(Longest CommonSubstring)和最长公共子序列(...

  • [leetcode]-53. 最大子序和-S

    题目描述 给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大。例如,给定序列 ...

  • 《Python基础教程》第2章 列表和元组

    序列概览 在Python中最基本的数据结构是序列(sequence)。序列共有6种类型,本章只重点讨论两种:列表和...

  • 最长公共子序列

    一个给定序列的子序列是在该序列中删去若干元素后得到的序列。问题:给定两个序列X和Y,找出二者的最长公共子序列。 请...

  • HTML----第二次笔记(第四天)

    1.列表 列表的种类主要有三种:无序列表,有序列表,和自定义列表 1.1无序列表(使用较多) 无序列表的个列表之间...

  • 【python美团点评】K

    题目:序列中任意个连续的元素组成的子序列称为该序列的子串。 现在给你一个序列P和一个整数K,询问元素和是K的倍数的...

网友评论

      本文标题:子序列种类和

      本文链接:https://www.haomeiwen.com/subject/ynbgmktx.html