牛客練習賽51 A B C

2021-10-01 01:59:39 字數 1290 閱讀 3206

前字尾維護字串中b左邊a的個數和b的個數,對於每個b,它能構成的的abc的個數即為它前面a的個數乘以它後面c的個數

#include

using namespace std;

#define ll long long

#define inf 0x3f3f3f3f

typedef pair<

int,

int> pii;

string s;

const

int maxn =

1e5+10;

ll a[maxn]

,c[maxn]

;int

main()

for(

int i = len -

1;i >=0;

-- i)

ll ans =0;

for(

int i =

1;i < len -1;

++ i)

if(s[i]

=='b'

) ans +

= a[i]

* c[i+1]

; cout<'\n'

;return0;

}

用乙個陣列pos[i][j]記錄 i 之後最近的字母 j 的位置

#include

using namespace std;

#define ll long long

#define inf 0x3f3f3f3f

typedef pair<

int,

int> pii;

string s1,s2;

int n,q;

const

int maxn =

1e5+10;

int pos[maxn][30

];intsolve()

return1;

}int

main()

while

(q --

)return0;

}

勾股數

#include

using namespace std;

#define ll long long

#define inf 0x3f3f3f3f

typedef pair<

int,

int> pii;

intmain()

}else

}return0;

}

牛客練習賽51

theme 給定n與m,要求你用正整數填充n個元素,使得這n個元素的和 m,定義喜愛度為i的個數使得2 i n且a i a i 1 1。1 n 1e5,1 m 1e9 solution 構造題。考慮列舉分成幾個段i,若某段的長度為len,則該段的數為1 len,可知喜愛度應為n i,所以我們的目標是...

牛客練習賽53 ABC

a 簡單dp include define ll long long using namespace std const ll mod 1e9 7 ll d 1000000 2 ll n intmain cout d n 1 d n 0 mod return0 b 分塊 include define...

題解 牛客練習賽51

字首a的數量,字尾c的數量,遇到b就計算一次答案。includeusing namespace std typedef long long ll const int n 1e5 100 char s n int cnt n int main int tmp 0 for int i 1 i n i p...