2022牛客寒假演算法基礎集訓營3

2022-09-19 19:15:19 字數 1447 閱讀 2265

智乃去註冊賬號,他發現**的的密碼必須符合以下幾個條件

現在智乃有乙個長度大小為\(\)的字串\(\),她想知道s串中有多少個子串是乙個符合條件的密碼,請你幫助智乃統計符合條件的密碼數目。

子串是指字串中某一段連續的區間,例如對於字串"abcde"來說,"abc","cde"都是它的子串,而"ace"不是它的子串。

第一行輸入三個正整數\(\),表示s串的長度,合法密碼長度應該在\(\)到\(\)個字元之間。

接下來一行輸入乙個長度為\(\)的字串\(\),字串僅包括①大寫英文本母、②小寫英文本母、③數字、④特殊符號四類字元。

僅一行乙個整數,表示有多少子串是乙個合法的密碼。

輸入

10 6 8

asdfeg111*

輸出
3
說明

"eg111","feg111","dfeg111*"

雙指標

先構建乙個 \(l\) 長度的滑動視窗,即動態維護考慮每個進入視窗對答案的貢獻,

// problem: 智乃的密碼

// contest: nowcoder

// url:

// memory limit: 524288 mb

// time limit: 2000 ms

// %%%skyqwq

#include #define pb push_back

#define fi first

#define se second

#define mp make_pair

using namespace std;

typedef long long ll;

typedef pairpii;

template bool chkmax(t &x, t y)

template bool chkmin(t &x, t y)

template void inline read(t &x)

while (s <= '9' && s >= '0') x = x * 10 + (s ^ 48), s = getchar();

x *= f;

}const int n=1e5+5;

int n,l,r,left[4][n];

char s[n];

inline int get(char &c)

int main()

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

ll res=0;

for(int r=l,l=1;r<=n;r++)

; sort(a,a+4);

if(a[1]res+=min(a[1],r+1-l)-l+1;

} printf("%lld",res);

return 0;

}

2022牛客寒假演算法基礎集訓營1

賽場上完成度 11 12 rank 33 a和的數根 數根的和,因此每個人的權值等價於權值的數根。設f i j 表示前i個人湊出j的方案數,直接根據意義轉移即可。includeusing namespace std const int mo 998244353 int a 1000010 b 100...

《2022牛客寒假演算法基礎集訓營3》

c 首先我們可以知道重量為1的方案數就是重量為2的物品的數量,因為只有2 2 1可以影響它。那麼如果我們從小到大迭代的話,對於當前位置i,只能賦值2 i才能影響當前位置,那麼如果當前方案數的差為d,那麼就還需要放d個2 i。這裡要注意的是差值可能為負數。includeusing namespace ...

2022牛客寒假演算法基礎集訓營1

揹包 分塊,預處理每個塊以 0 1 2 的分數進入時出來後的分數是多少 看了題解發現可以用分塊思想倍增,複雜度優化成 nlogn 模擬題,就不說了 求 h x frac 考慮 phi x x prod frac 則 h x prod frac 則問題一是 2 3 5 7 問題二是 2,n 中最大的素...