題目連線:
考慮到了第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...