前字尾維護字串中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...