五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

DP小練習(xí): 接龍數(shù)列 (線性dp)

2023-06-09 12:10 作者:StepfenShawn  | 我要投稿

題目描述

對(duì)于一個(gè)長(zhǎng)度為 K 的整數(shù)數(shù)列:A1, A2, . . . , AK,我們稱之為接龍數(shù)列當(dāng)且僅當(dāng) Ai?的首位數(shù)字恰好等于 Ai?1?的末位數(shù)字 (2 ≤ i ≤ K)。

例如 12, 23, 35, 56, 61, 11 是接龍數(shù)列;12, 23, 34, 56 不是接龍數(shù)列,因?yàn)?56的首位數(shù)字不等于 34 的末位數(shù)字。所有長(zhǎng)度為 1 的整數(shù)數(shù)列都是接龍數(shù)列。

現(xiàn)在給定一個(gè)長(zhǎng)度為 N 的數(shù)列 A1, A2, . . . , AN,請(qǐng)你計(jì)算最少?gòu)闹袆h除多少個(gè)數(shù),可以使剩下的序列是接龍序列?

輸入格式

第一行包含一個(gè)整數(shù) N。

第二行包含 N 個(gè)整數(shù) A1, A2, . . . , AN。

輸出格式

一個(gè)整數(shù)代表答案。

樣例輸入

5 11 121 22 12 2023

樣例輸出

1


思路:

找到最長(zhǎng)的接龍數(shù)列的長(zhǎng)度 len, 那么 n - len 就是最小操作數(shù)。

可以使用 dp 找到最長(zhǎng)的接龍數(shù)列

首先定義狀態(tài)所代表的子集:

f[i][j]: 在前 i 個(gè)數(shù)中結(jié)尾數(shù)字為 j 的所有數(shù)列

定義子集的屬性為最大長(zhǎng)度。

接下來(lái)我們推導(dǎo)狀態(tài)轉(zhuǎn)移:

對(duì)于數(shù)字 a, 我們用 a.first 表示其首位數(shù)字, b.first 表示其末尾數(shù)字, 假設(shè)我們當(dāng)前集合準(zhǔn)備選取數(shù)字 k:

那么對(duì)于數(shù)字 k 這個(gè)對(duì)象, 有選和不選兩種情況

如果不選的話: f[i][k.second] = f[i - 1][k.second]

如果選的話: f[i][k.second] = f[i - 1][k.first]

于是有 f[i][k.second] = max(f[i - 1][k.second], f[i - 1][k.first])

由于我們要取 f[n][0] ~ f[n][9] 的最大值, 那么需要在每次循環(huán)前可以先計(jì)算出不選時(shí)的答案 f[i][j]=f[i- 1][j] (否則會(huì)全部 WA 暴零):


DP小練習(xí): 接龍數(shù)列 (線性dp)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
甘南县| 绥化市| 建昌县| 滦平县| 德保县| 当涂县| 南充市| 丰都县| 澄迈县| 双柏县| 大方县| 固原市| 湟源县| 开远市| 仁怀市| 廉江市| 和平县| 邵阳县| 建始县| 桓台县| 灵山县| 商河县| 隆子县| 竹山县| 东辽县| 喀什市| 定陶县| 临海市| 江阴市| 舒城县| 绥中县| 利辛县| 平度市| 陆川县| 宾阳县| 安图县| 宜兰市| 郎溪县| 凤阳县| 平乡县| 安丘市|