這是校賽的一道題,當時覺得挺難,後來就覺得簡單,知道思路後就很好做了。
題目是這樣子的:
1008: 植樹節b
time limit: 1 sec memory limit: 128 mb
submit: 4 solved: 4
[submit][status][web board]
description
植樹節那天每個班級都要掛出宣傳標語,學校要對每個班級的宣傳標語進行打分,得到的分數就是
該標語裡含有子串行「312」的個數(其中3,1,2三個數字允許不相鄰但一定要按照該順序),例
如,給定序列33122,那麼得分為4(第乙個3, 1,第乙個2;第乙個3, 1,第二個2;第二個3, 1,
第乙個2;第二個3, 1,第二個2,共4個,所以得分為4)。給乙個宣傳標語,請給出這條標語的得
分。input
先輸入t,表示輸入t個測試資料,對於每個測試資料,輸入乙個字串,表示一條標語,標語長度
<100000。
output
對於每個測試資料,輸出一行,乙個數字,表示這條標語的得分(得分不會超過int的表示範圍)。
sample input
133122
sample output
4首先這道題目要是直接用三個for語句是絕對會超時的,算到死都算不了,那麼簡單他也不會讓你做。。。首先我們特別注意一下這個「1」,只要前面有3,後面有2,他就有意義,所以,在一串數字中,我們記錄下每個一前面3的總數和後面2的總數,兩個總數相乘就得到這個1所能成就的312。。 就如數字串33113122 (注意 2 要從右邊往左數,因為2在1的右邊)
n3 1 2 2 2 3 3 3 3
-------------------->
3 3 1 1 3 1 2 2
<---------------------
n2 2 2 2 2 2 2 2 1
然後每個1 所對應的n3 *n2 便是該1所成就的312的個數,最後把每個相加就可以得到結果了。
我寫的**如下:
#include #include #include using namespace std;
int main()
} for(i=strlen(s)-1;i>=0;i--)
}for(i=0;i
一道簡單的題目
這是一道leetcode的題目,描述如下 given an unsorted integer array,find the first missing positive integer.for example,given 1,2,0 return 3,and 3,4,1,1 return 2.you...
一道簡單的acm題目
acm協會主席alphard決定在除夕夜辦一場山寨春晚,立即得到廣大acmer的支援。報名的acmer眾多,主席已經開始忙不過來了。幸好有 細心 的angelclover幫忙,把報名參加山寨春晚的節目單按照預演時間進行了歸類。alphard要求春晚不要超過4小時,但為了不打擊廣大acmer的積極性,...
一道this的題目
請問下面 中的this值指向的是全域性物件還是物件o?function f return c var o new f console.log o.constructor.name object這裡的this指向全域性物件,因為 c call without new。這裡用正常的方式呼叫的函式 c 所...