有乙個塔,他的名字叫做粽粑,粽粑的每一層都有乙個顏色 .
粽粑非常厲害,它在吸收天地精華之後會長高.粽粑的長高方式有兩種:
1.在塔頂長出一層.
2.在塔底長出一層,即原來的第一層變成第二層,第二層變成第三層,以此類推,新長出來的是第一層.
粽粑有可能在某個時刻不是很開心,這個時候它會撤銷它的前若干次長高.
你現在想知道粽粑長高的奧秘,於是找到了粽粑,發現它的入口上寫著這麼一句話:要進入粽粑,請找出一段最長的塔的區間,滿足翻轉後顏色不變.
粽粑會不斷的長高(或撤銷),所以它每次長高後你都要回答.為了你的方便,粽粑一開始的高度為0.
我發現我的字串學傻了⊙﹏⊙‖∣
回文樹模板題,但是卡不過。
假設上一次的答案為ans,
對於頭尾,我們分別維護長度為ans的字串的兩個雜湊值(這個長度為ans的字串的雜湊值高位分別在前或後),
看雜湊值是否一樣就能判斷是否為回文串。每次長高只會讓ans+1或+2,判斷一下。
#pragma gcc optimize(3)
#include #include #include #include #include #include #include #include const int maxlongint=2147483647;
const long long mo=1e9+7;
const int n=10000005;
using namespace std;
int n,m,ans[n],top;
long long sum[n][4];
char t[n];
short int num[n*3];
long long mi[n],ny,val;
long long pow1(long long x,int y)
int main()
if(r-l+1>=len+2)
}} else
if(c=='2')
if(r-l+1>=len+2)
} } else
}val+=1ll*ans[top];
} printf("%lld\n",val);
}
清華集訓2017模擬12 09 塔
有乙個塔,他的名字叫做粽粑,粽粑的每一層都有乙個顏色 粽粑非常厲害,它在吸收天地精華之後會長高.粽粑的長高方式有兩種 1.在塔頂長出一層.2.在塔底長出一層,即原來的第一層變成第二層,第二層變成第三層,以此類推,新長出來的是第一層.粽粑有可能在某個時刻不是很開心,這個時候它會撤銷它的前若干次長高.你...
清華集訓2017模擬 ces
首先把用tajan把橋邊全部找出來,橋邊會把圖分成若干個雙聯通分量。把每個雙聯通分量並成乙個點,橋邊作為邊,這會構成一棵樹。顯然,對於每個詢問加k條邊最多能去掉多少條橋邊,就是用k條簡單路徑去覆蓋這棵樹,最多能覆蓋多少條邊。有乙個很優的貪心,把k按1 q做,每次找到樹的直徑,答案加上直徑的長度,把直...
清華集訓2017模擬12 10 大佬的難題
1 n 2e6,時限 2.5s 容斥原理瞎搞。設a,b,c分別為滿足三個條件的集合。根據容斥原理,有 a b c a b c a b a c b c a b c 而a b c同時會等同於總數n n 1 都大於的個數 即都小於的個數a b c 所以 n n 1 a b c a b c a b a c ...