知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
第十一屆藍(lán)橋杯大賽軟件類省賽第二場 H: 子串分值和
發(fā)表時(shí)間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):87
題解
列舉每個(gè)左端點(diǎn)(l), 每個(gè)字母自力計(jì)算供獻(xiàn),列舉每個(gè)字母,在【l, n】 中找到該字母第一次出現(xiàn)的地位p, 則左端點(diǎn)為 l, 右短點(diǎn)在【p, n】的子串都獲得該字母的供獻(xiàn),供獻(xiàn) n - p + 1。
例如 :
- ccaba
- 當(dāng) l = 1 時(shí) :
- 列舉 ‘a(chǎn)’ , 第一次出現(xiàn)的地位 p = 3 供獻(xiàn) 5 - 3 + 1 = 3。
- 列舉 ‘b’ …
- 當(dāng) l = 2 …
序列自念頭保護(hù)下一字符地位, 復(fù)雜度 O(26 * n)
#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
const int maxn = 2e5 + 10, mod = 1e9 + 7, inf = 0x3f3f3f3f;
char s[maxn]; int n, nxt[maxn][30];
void init()
{
for(int i = n; i >= 1; i--)
{
for(int j = 1; j <= 26; j++)
nxt[i-1][j] = nxt[i][j];
nxt[i-1][s[i]-'a'+1] = i;
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> s + 1;
n = strlen(s + 1);
init();
ll ans = 0;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= 26; j++)
{
int p = nxt[i-1][j];
if(p == 0) continue;
ans += (n - p + 1);
}
}
cout << ans << endl;
return 0;
}
相關(guān)案例查看更多
相關(guān)閱讀
- 云南etc微信小程序
- 小程序開發(fā)排名前十名
- 網(wǎng)站開發(fā)
- 網(wǎng)站建設(shè)報(bào)價(jià)
- 報(bào)廢車回收管理軟件
- 報(bào)廢車拆解管理系統(tǒng)
- 曲靖小程序開發(fā)
- 網(wǎng)站制作
- 北京小程序開發(fā)
- web服務(wù)
- vue開發(fā)小程序
- 商標(biāo)注冊(cè)
- 汽車報(bào)廢回收軟件
- 云南網(wǎng)絡(luò)營銷
- 網(wǎng)站建設(shè)公司地址
- 南通小程序制作公司
- 云南軟件開發(fā)
- 網(wǎng)站開發(fā)哪家好
- 網(wǎng)站建設(shè)專家
- 百度小程序公司
- 云南建站公司
- flex
- 微分銷
- 報(bào)廢車管理
- 昆明網(wǎng)站設(shè)計(jì)
- 高端網(wǎng)站建設(shè)公司
- 出入小程序
- 云南軟件定制
- 云南網(wǎng)站建設(shè)優(yōu)化
- 云南網(wǎng)站建設(shè)公司