哈爾濱理工大學第七屆程式設計競賽初賽(高年級組)F.苦逼單身狗(滑動視窗 or DP or 二分)
阿新 • • 發佈:2019-01-26
思路:滑動視窗 or DP or 二分。
滑動視窗:
#include <bits/stdc++.h> using namespace std; const int MAXN = 100005; int num[4];//L,O,V,E的個數 const string LOVE = "LOVE"; char str[MAXN]; int main() { int T; scanf("%d", &T); while(T--) { memset(num, 0, sizeof(num)); scanf("%s", str); int len = strlen(str), now = 0, r = 0; long long ans = 0; for (int i = 0; i < len; i++) { //查詢以i為起點的第一個符合要求的區間 while (now < 4 && r < len) { for (int j = 0; j < 4; j++) { if (str[r] == LOVE[j]) { if (!num[j]) now++; num[j]++; } } r++; } if (now < 4) break; ans += (len - r + 1); //更新num和now for (int j = 0; j < 4; j++) { if (str[i] == LOVE[j]) num[j]--; if (!num[j]) now--; } } printf("%lld\n", ans); } } /* 3 ILOVEACM LOVELOVE ALBECVOD */
來源:牛客網
題目描述
雙11又到了,小Z依然只是一隻單身狗,對此他是如此的苦惱又無可奈何。
為了在這一天脫單小Z決定向女神表白,但性格靦腆的小Z決定隱晦一點,擷取一段包含'L'、'O'、'V'、'E'的英文。(順序不限)
小Z想起之前小D送給他一本英文書,決定在這裡面擷取一段話,小Z發現有好多種方案來擷取這段話。
你能知道小Z能有多少種方案擷取這段話麼?
為了簡化問題,英文文字講不會出現空格、換行、標點符號及只有大寫的情況。
輸入描述:
本題有T組資料。 對於每組資料只有一行文字。 1≤T≤20 1≤文字長度≤100000
輸出描述:
輸出結果,並換行。