2020牛客競賽 DP F 碎碎念

2022-06-02 07:48:11 字數 820 閱讀 9120

題目連線:

考慮到了第iii句話時候,這種狀態可能由兩種狀態轉移而來。

直接一發ac,從第i−1i-1i−1句話直接到達第iii句。

如果i>=ki>=ki>=k,可以由一發rj從i−ki-ki−k句到達第i句。 構造dp[i][0/1]dp[i][0/1]dp[i][0/1],dp[i][0]dp[i][0]dp[i][0]表示到了第iii句話,是從i−1i-1i−1句話ac到達的方案數。dp[i][1]dp[i][1]dp[i][1]表示到了第i句話,是由i−ki-ki−k句話rj過來的方案數。 由此可知轉移條件

易確定邊界條件 dp[0][0]=1dp[0][0]=1dp[0][0]=1; dp[0][1]=0dp[0][1]=0dp[0][1]=0;

由於有qqq次查詢 ,查詢數目較多,我們可以線性時間內預處理前nnn項和即字首和,然後用第rrr項減去第l−1l-1l−1項即可。

1 #include 2

#define maxn 100005

3const

int p = 1e9+7;4

using

namespace

std;

5 typedef long

long

ll;6

int dp[maxn][4]=;

7int

l,r;

8int

main() 17}

18 dp[0][3]=1;19

for(int i=1;i)

2526

for(int i=0;i)

31return0;

32 }

我的2020 碎碎念

文章想寫很久了,只是一直有好多事。部落格裡的草稿箱也堆了好幾篇。我不是個善於表達的人,多說多錯,盡量少說。自己非常幸運能去data ies實習。記得剛進部門,我mentor向我宣布,因為工作轉移的原因,我們的一整個業務,目前只有他和我倆人,orz。確實沒人,乙個業務4個模組,mentor乙個人頂了三...

牛客 組隊競賽

題目解析 此題題意,這是乙個求最優解的問題,三人一對,由首行n輸入的值來確定隊伍數目,我們為保證所有隊伍的水平值總和為最大值,則需讓隊伍中第二大的值盡量大。所以將最大值放到最右邊,最小是放左邊.解題思路 1.本題的主要思路是貪心演算法,就是每次選值時都選當前能看到的區域性最優解,所以這裡的貪心就是保...

牛客競賽Anagram

一 題目 二 題意 給定兩個長度一樣的字串 均為大寫字母 計算將a變為和b一樣的構成最少需要多少步。三 思路 將a和b分別按字母順序排序,由於可能存在輪迴向前找的情況,為了避免繞大圈,所以直接將a的當前字母和b的尾巴上未匹配的字母進行操作。四 include include include intc...