1. 程式人生 > >哈爾濱理工大學第七屆程式設計競賽初賽(高年級組)F 苦逼的單身狗【DP】

哈爾濱理工大學第七屆程式設計競賽初賽(高年級組)F 苦逼的單身狗【DP】

時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 32768K,其他語言65536K
64bit IO Format: %lld
題目描述
雙11又到了,小Z依然只是一隻單身狗,對此他是如此的苦惱又無可奈何。
為了在這一天脫單小Z決定向女神表白,但性格靦腆的小Z決定隱晦一點,擷取一段包含’L’、’O’、’V’、’E’的英文。(順序不限)
小Z想起之前小D送給他一本英文書,決定在這裡面擷取一段話,小Z發現有好多種方案來擷取這段話。
你能知道小Z能有多少種方案擷取這段話麼?
為了簡化問題,英文文字講不會出現空格、換行、標點符號及只有大寫的情況。
輸入描述:
本題有T組資料。
對於每組資料只有一行文字。
1≤T≤20
1≤文字長度≤100000
輸出描述:
輸出結果,並換行。
示例1
輸入
3
ILOVEACM
LOVELOVE
ALBECVOD
輸出
8
15
4

分析:一開始想存一下四個字母出現的位置,然後每次二分查詢最近的點進行累加O(nlogn)。

從後向前遞推,也可以O(n)通過

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 1e5 + 10;
char str[maxn];
int T;
int main()
{
    scanf("%d", &T);
    while (T--) {
        scanf
("%s", str); long long int ans = 0; int len = strlen(str); int L = -1, O = -1, V = -1, E = -1; for (int i = len - 1; i >= 0; i--) { if (str[i] == 'L') L = i; else if (str[i] == 'O') O = i; else if (str[i] == 'V') V = i; else
if (str[i] == 'E') E = i; if (L != -1 && V != -1 && O != -1 && E != -1) { int tmp = max(max(L, E), max(O, V)); ans += 1ll * (len - tmp); } } printf("%lld\n", ans); } return 0; }

相關推薦

哈爾濱理工大學程式設計競賽初賽高年級F.單身滑動視窗 or DP or 二分

思路:滑動視窗 or DP or 二分。滑動視窗:#include <bits/stdc++.h> using namespace std; const int MAXN = 100005;

哈爾濱理工大學程式設計競賽初賽高年級F 單身DP

時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 32768K,其他語言65536K 64bit IO Format: %lld 題目描述 雙11又到了,小Z依然只是一隻單身狗,對

哈爾濱理工大學程式設計競賽初賽高年級F-單身

連結:https://www.nowcoder.com/acm/contest/27/F來源:牛客網題目描述 雙11又到了,小Z依然只是一隻單身狗,對此他是如此的苦惱又無可奈何。 為了在這一天脫

哈爾濱理工大學程式設計競賽初賽高年級 A B C D F G H I

A 凌波微步 時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 32768K,其他語言65536K 64bit IO Format: %lld 題目描述 小Z的體型實在是太胖了,每次和小D一起出門都跟不上小D的腳步,這讓小Z很氣餒

哈爾濱理工大學程式設計競賽初賽高年級I 旅行列舉+spfa

時間限制:C/C++ 2秒,其他語言4秒 空間限制:C/C++ 32768K,其他語言65536K 64bit IO Format: %lld 題目描述 小z放假了,準備到RRR城市旅行,其中這個城市有N個旅遊景點。小z時間有限,只能在三個旅行景點進行遊

哈爾濱理工大學程式設計競賽初賽高年級H 佈置會場斐波那契

時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 32768K,其他語言65536K 64bit IO Format: %lld 題目描述 小d接到了一個佈置會場的任務。 他需要

矩陣快速冪 牛客網哈爾濱理工大學程式設計競賽初賽高年級H題

題目描述 小d接到了一個佈置會場的任務。 他需要將貴賓觀眾席的椅子排成一排,一共需要N個。 上級領導指示,他只能使用兩種椅子。(A型別和B型別)並且假設每種椅子的數量都是無限的。 而其如果想要擺置一個B型別的椅子,對應就需要必須有連續兩個一起佈置。換

哈爾濱理工大學程式設計競賽初賽高年級D-經商

連結:https://www.nowcoder.com/acm/contest/27/D來源:牛客網題目描述 小d是一個搞房地產的土豪。每個人經商都有每個人經商的手段,當然人際關係是需要放在首位的。

哈爾濱理工大學程式設計競賽初賽低年級

今天是Tabris和mengxiang000來到幼兒園的第9天。 為了慶祝這美好的一天,老師組織同學們做遊戲,拿來了好多骰子。 遊戲規則: 1)兩個人每人輪流擲骰子,操控同一個小人在一個有向的地圖上走,骰子的點數是幾,這個小人就向前走幾格。 2) 地圖只有一條路,路上有起點、終點和傳送陣。傳送陣會只能

哈爾濱理工大學程式設計競賽決賽網路賽-低年級

給出一個序列,你的任務是求序列中 (a[j]-a[i])/(j-i)【1<=i<j<=n】的最大值輸入描述:本題包含多組輸入,每組輸入第一行一個數字n,表示序列的長度。 然後接下來一行輸入n個數,表示原先序列的樣子。 資料範圍: 3<=n<=200000 -1000000000&

哈爾濱理工大學程式設計競賽決賽網路賽-高年級-D:數圈圈數位DP

時間限制:C/C++ 1秒,其他語言2秒空間限制:C/C++ 32768K,其他語言65536K64bit IO Format: %lld 題目描述 tabris有一個習慣,無聊的時候就會

哈爾濱理工大學程式設計競賽決賽網路賽-高年級B 幸運大獎DP

時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 32768K,其他語言65536K 64bit IO Format: %lld 題目描述 tabris實在是太窮了,為了發財,ta

哈爾濱理工大學程式設計競賽決賽網路賽-高年級B題幸運大獎

幸運大獎 時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 32768K,其他語言65536K 64bit IO Format: %lld 題目描述 tabris實在是太窮了,為了發財,tabris去買了一張彩票,幸運地中了特別獎。 特別獎是這樣的,不會直接給

哈爾濱理工大學程式設計競賽決賽網路賽-高年級D 數圈圈

時間限制:C/C++ 1秒,其他語言2秒空間限制:C/C++ 32768K,其他語言65536K64bit IO Format: %lld 題目描述 tabris有一個習慣,無聊的時候就會

哈爾濱理工大學程式設計競賽決賽網路賽-高年級A所有情況的和

所有情況的和 時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 32768K,其他語言65536K 64bit IO Format: %lld 題目描述 在acimo星球, tabris是一名勇敢的屠龍勇士,在上綠島屠龍前決定挑選N種裝備武裝自己,現在每種裝

哈爾濱理工大學程式設計競賽決賽網路賽-高年級G.幼兒園戰爭

題目描述幼兒園的孩子們正在做遊戲,每個人都有自己的幫派,幫派之間打架,然後贏者吞併弱者擴大自己的勢力。最開始每個孩子的幫派中只有自己,然後接下來有會有兩個人打架,這兩個人會集結自己所屬的勢力開始打架,打贏的一方就會吞併輸的一方,當然如果x,y是一個勢力就不會打起來。有些聰明的

哈爾濱理工大學程式設計競賽決賽現場賽-高年級B-幸運大獎

時間限制:C/C++ 1秒,其他語言2秒空間限制:C/C++ 32768K,其他語言65536K64bit IO Format: %lld 題目描述 tabris實在是太窮了,為了發財,tabr

哈爾濱理工大學程式設計競賽決賽 A 所有情況的和

題目描述 在acimo星球, tabris 是一名勇敢的屠龍勇士,在上綠島屠龍前決定挑選N種裝備武裝自己,現在每種裝備有兩個,但每種裝備tabris必須選擇拿一個,不能多也不能少。 每件裝備有自己的屬性值,能給tabris屬性加成。 對於不同種類的裝備之間

"尚學堂杯"哈爾濱理工大學程式設計競賽 C.Collection Game遞推

Collection Game Time Limit: 1000 MS Memory Limit: 128000 K Total Submit: 41(21 users) Total Accept

哈爾濱理工大學程式設計競賽決賽 D 數圈圈

時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 32768K,其他語言65536K 64bit IO Format: %lld 題目描述 tabris有一個習慣,無聊的時候就會數圈圈,無論數字還是字母。 現在t