首页 > 其他分享 >[ARC125D] Unique Subsequence

[ARC125D] Unique Subsequence

时间:2023-08-15 19:11:58浏览次数:58  
标签:pre right 之前 ARC125D Subsequence 序列 Unique dp left

设 \(pre_i\) 表示在 \(i\) 之前最后一个和 \(i\) 相同的数的位置,\(dp_i\) 表示第 \(i\) 个数为结尾的序列的合法方案数。

对于 \(pre_i = 0\),即在 \(i\) 之前不存在与 \(i\) 相同的数,\(dp_i\) 由 \(\left[ 1,i - 1 \right]\) 转移过来。由于这个数还没有在之前出现过,它本身也是一个合法序列,所以要加 \(1\)。

\[dp_i= \sum_{j=1}^{i-1}dp_j + 1 \]

对于 \(pre_i \neq 0\),即在 \(i\) 之前存在与 \(i\) 相同的数,那么我们考虑 \(\left[ 1,pre_i - 1 \right]\) 这部分,由于 \(i\) 已经在之前出现过了,这部分序列加上 \(i\) 的部分在 \(pre_i\) 已经处理过了,再加的话会导致重复。

考虑 \(\left[ pre_i,i - 1 \right]\) 这部分,对于之前加过的单独的 \(i\),这时候要 \(-1\),但是又因为产生了新序列 \(\left\{ pre_i,i \right\}\),这里要 \(+1\),所以最终不加不减。

\[dp_i=\sum^{i-1}_{j=pre_i}dp_j \]

最后我们用树状数组对区间求和进行优化。

标签:pre,right,之前,ARC125D,Subsequence,序列,Unique,dp,left
From: https://www.cnblogs.com/baijian0212/p/solution-at-arc125-d.html

相关文章

  • c++中unique_ptr 的使用和理解
    unique_ptr的使用std::unique_ptr是c++11起引入的智能指针,为什么必须要在c++11起才有该特性,主要还是c++11增加了move语义,否则无法对对象的所有权进行传递。unique_ptr介绍unique_ptr不共享它的指针。它无法复制到其他unique_ptr,无法通过值传递到函数,也无法用于需要副本的......
  • [UNIQUE VISION Programming Contest 2023 Summer(AtCoder Beginner Contest 312) - A
    UNIQUEVISIONProgrammingContest2023Summer(AtCoderBeginnerContest312)-AtCoderA-Chord(atcoder.jp)#include<bits/stdc++.h>#defineendl'\n'usingnamespacestd;intmain(){vector<string>str{"ACE",&qu......
  • IfcGloballyUniqueId
    IfcGloballyUniqueId类型定义IfcGloballyUniqueId包含用于唯一标识IFC对象的编码字符串标识符。IfcGloballyUniqueId是一个全局唯一标识符(GUID),它是一个自动生成的128位数字。由于所有IFC对象实例都需要此标识符,因此需要对其进行压缩以减少开销。基本64个字符集的编码如下所示: ......
  • Oracle数据库DB_NAME、SERVICE_NAME、SID、INSTANCE_NAME、DB_UNIQUE_NAME的区别 转
    Oracle数据库DB_NAME、DBID、DB_UNIQUE_NAME、SERVICE_NAME、SID、INSTANCE_NAME、GLOBAL_DATABASE_NAME的区别DB_NAME:①是数据库名,长度不能超过8个字符,记录在datafile、redolog和controlfile中②在DataGuard环境中DB_NAME相同而DB_UNIQUE_NAME不同③在RAC环境中,各个节点的DB_......
  • react antd5 Warning: Each child in a list should have a unique "key" prop.
    Warning:Eachchildinalistshouldhaveaunique"key"prop.说明:表格数据赋值给一个key值<Tablecolumns={columns}dataSource={data.map((item)=>({...item,key:item.id}))}/>......
  • [AGC024F] Simple Subsequence Problem
    ProblemStatementYouaregivenaset$S$ofstringsconsistingof0and1,andaninteger$K$.Findthelongeststringthatisasubsequenceof$K$ormoredifferentstringsin$S$.Iftherearemultiplestringsthatsatisfythiscondition,findthelexic......
  • [ARC150F] Constant Sum Subsequence
    ProblemStatementWehaveasequenceofpositiveintegersoflength$N^2$,$A=(A_1,\A_2,\\dots,\A_{N^2})$,andapositiveinteger$S$.Forthissequenceofpositiveintegers,$A_i=A_{i+N}$holdsforpositiveintegers$i\(1\leqi\leqN^2-N)$,an......
  • POJ 1458 Common Subsequence(动态规划)
    传送门代码如下:#include<iostream>#include<cstdio>usingnamespacestd;intmaxLen[1000][1000];intmain(){strings1,s2;while(cin>>s1>>s2){intlength1=s1.length();intlength2=s2.length();......
  • Subsequence Addition
    #SubsequenceAddition(HardVersion)##题面翻译本题为困难版,两题的唯一区别在于数据范围的大小。数列$a$最开始只有一个数$1$,你可以进行若干次操作,每次操作你可以选取$k$个数($k$无限制,小于等于$a$的大小即可),将这$k$个数的和放入$a$的任意一个位置。给定一个长......
  • CF1132G Greedy Subsequences
    简单题。\(i\)向\(i\)后第一个\(j\),\(a_j\)比\(a_i\)大的点连边,不难发现最后形成了一棵森林,并且一个点的父亲\(\text{fa}_i>i\)。题目变成了取\([l,r]\)中的点为起点,向祖先方向走去并且终点编号\(\ler\)的最长链长度。考虑离线,维护从每个点开始的最长链长度\(f_i......