ACM icpc重慶你好2019

2021-09-29 08:08:38 字數 1255 閱讀 3263

依稀記得那個讓我崩潰的題目,做了好久沒做出來,後來在網上搜了一下發現這個題近乎於原題,我就更崩潰了,今天拜讀了了一下大佬的部落格,找了好幾篇,做法都是線段樹加矩陣的做法,用矩陣來記錄狀態,發一下大佬的部落格位址,借他幾張圖- -:

ai,j表示從i狀態到j狀態需要刪除的字元數。

這裡我們把字串翻轉,我們就可以查2019與2018,不用倒過來了 - -

其中有五個狀態,其中有空集,2,20,201,2019五個狀態

.這表示,比如加入狀態0,加入乙個2,如果我們要轉到狀態0我們需要刪掉2,01中的0就是如果這個數是2,那麼矩陣的數就是0.

這個圖可以表示出現2018的8時,我們需要刪除8.

話不多說**:

#include

#define ll (rt<<1)

#define rr (rt<<1|1)

#define gmid (l+r>>1)

using namespace std;

const int maxn=2e5 + 5;

const int maxm=2e6 + 5;

const int mod=1e9 + 7;

const int inf=0x3f3f3f3f;

struct matrix

matrix operator *(const matrix &o)const

};char s[maxn];

matrix sum[maxn<<2];

int n,q;

void add(int r, int l)

void up(int rt)

void build(int l,int r,int rt)

int mid=gmid;

build(l,mid,ll);

build(mid+1,r,rr);

up(rt);

}void query(int l,int r,int rt,int l,int r,matrix &g)

int mid=gmid;

if(l<=mid) query(l,mid,ll,l,r,g);

if(r>mid) query(mid+1,r,rr,l,r,g);

}int main()

}

再見2018,你好2019!

又到了一年一度寫年度總結的時候,不知不覺2018年就過去了,回想過去一年,做了幾個重要的選擇,由於各種原因把,今年的技術沒有提公升得那麼快了,也許是自己的精力更多的投入到別的方面把,也是值得自己反思的一件事情。翻當初的記錄,設立的flag如下 總得來說,實現了1,3,5點。1.真的增重了20斤,這一...

再見2018,你好2019!

看見大家都在立下新年flag,想變強,就得有目標。想想自己渾渾噩噩的過了29年,人家都說男人30而立,我這已經乙隻腳踏進30歲大門的人了,必須得要做出一些改變了。1.到145斤,練出八塊腹肌。175的個子,180斤的體重,想想就賊恐怖。2.至少看10本人際交往的書籍。作為程式猿,大部分都是死肥宅,不...

再見2019,你好2020

即將邁入2020,元旦的鐘聲馬上要敲響,轉眼也到了而立之年,再回頭看看18歲的自己漸漸走遠,模樣越來越模糊。2019有得有失,有喜有怒,有樂有傷,總之對得起自己。2019的自己開始喜歡用文字記錄下自己的所想所得,喜歡這樣的感覺。2019辛苦了!2020要加油!從今天開始,做乙個幸福的人,好好吃飯,好...