牛客巔峰賽S2第6場題解

2022-05-22 17:57:10 字數 2516 閱讀 2828

題目描述

給出乙個僅包含小寫字母的字串s,你最多可以操作k次,使得任意乙個小寫字母變為與其相鄰的小寫字母(ascii碼差值的絕對值為1),請你求出可能的最長相等子串行(即求這個字串修改至多k次後的的乙個最長子序列,且需要保證這個子串行中每個字母相等)。

子串行:從原字串中取任意多個字母按照先後順序構成的新的字串。

示例1

輸入

2,"abcde"
返回值

3
示例2

輸入

10,"acesxd"
返回值

4
備註:

資料滿足:\(1\leq |s|\leq 2^, 1\leq k \leq3000\),其中\(|s|\)表示字串的長度。

找到所有字串中所有字元到每個字母的距離,排序。

找每個字母所能得到的最大長度。

class solution 

}for(int i = 0; i < 26; i++) sort(dist[i].begin(), dist[i].end());

int ans = 1;

for(int i = 0; i < 26; i++)

//cout << sums << " " << p << endl;

//if(p == n) return n;

}return ans;

}};

題目描述

音遊狂熱愛好者牛牛接到了乙個新的任務,那就是給一張樂譜設計重音符。每當玩家敲擊重音符的時候就會發出"bang"的美妙聲音!!

每一張樂譜都有\(n\)個音符從左到右一字排開,現在牛牛的任務就是選出其中\(m\)個音符將其標記為重音符,同時任意兩個重音符之間都必須隔著至少\(k\)k個音符。

乙個有意思的問題誕生了,請求出這樣合法的設計方案種數,並輸出答案對\(1000000007\)取模的結果。

示例1

輸入

3,2,1
返回值

1
備註:

資料範圍 \(3≤n≤1000,m(0≤m≤n),k(0≤k≤n)\)

動態規劃

乙個位置只有兩種可能:放重音符和不放重音符。

那麼用\(dp[i][j]\)代表前\(j\)個字元中放了\(i\)個重音符可能的情況總數。

const int mod = 1e9+7;

#define ll long long

class solution

}long long res = 0;

for(int i = 1; i <= n; i++)

return res;

}};

題目描述

牛牛想知道\(\sum_^n \left \lceil \frac \right \rceil\)的值是多少(式子中\(\left \lceil \frac \right \rceil\)表示向上取整),現在牛牛給你\(\mathit n\),請你告訴牛牛和是多少。

示例1輸入

10
返回值

33
備註:

\(1\leq n\leq 10^9\)

比賽中一直在oeis中找公式,害,大意了啊

分塊模擬一遍樣例:

1  2  3  4  5  6  7  8  9  10

10 5 4 3 2 2 2 2 2 1

可以得到\(\left \lceil \frac \right \rceil\)的值在一段區間裡是不變的,那麼只要找到區間的左右端點就行了。

左端點是很容易得到的。

右端點計算方法如下:

統計即為答案。

#define ll long long

class solution

else r = mid - 1;

}return ans;}/*

** 1 2 3 4 5 6 7 8 9 10

** 10 5 4 3 2 2 2 2 2 1

*/long long sum(int n)

return sums;

}};

牛客程式設計巔峰賽S2第2場 題解

牛牛是個非常熱心的人,所以他有很多的朋友。這一天牛牛跟他的n個朋友一起出去玩,在出門前牛牛的媽媽給了牛牛k塊糖果,牛牛決定把這些糖果的一部分分享給他的朋友們。由於牛牛非常熱心,所以他希望他的每乙個朋友分到的糖果數量都比牛牛要多 嚴格意義的多,不能相等 牛牛想知道他最多能吃到多少糖果?如果平均分配,計...

牛客程式設計巔峰賽S2第2場

鑽石 王者 先從kk k塊糖果中拿出n nn塊糖果平均分給n nn個朋友,剩下的糖果再和牛牛一起平分,答案 k n n 1 frac n 1k n 三個木棒的構不成三角形的邊界情況就是a b c a b c a b c,那麼對於總的木棒長度固定,只要滿足斐波那契數列即可。這個題就是考察層次遍歷的時候...

牛客程式設計巔峰賽S2第4場

又沒中獎 題目描述 牛牛最近很喜歡擲硬幣,由於他今天很無聊,所以他在家擲了n次硬幣,如果這n次硬幣全部朝上或者全部朝下牛牛就很開心,請問牛牛開心的概率是多少。每次擲硬幣朝上的概率與朝下的概率相同 示例1輸入複製1 返回值複製 1.00 說明概率為1,四捨五入保留兩位小數的字串為 1.00 示例2輸入...