自己出題 妲麗安想記住

2022-09-09 07:30:13 字數 1988 閱讀 8935

timelimit: 1s

memerylimit: 256m

天空於我過於寬闊,時光於我過於短暫。

在無知中空虛,連匯集的話語,都在黃土中朽去。

——《丹特麗安的書架》

妲麗安是一位愛讀書的哥特裝蘿莉。她的某個書架上有\(n\)本書,一開始她記住了這\(n\)本書中所有的內容,但是如果她有一天沒重溫一本書的話,她就會忘記這本書內容的\(\frac\),也就是說\(k\)天之後她就會把這本書的內容完全忘記。如果她某天重溫這本書,那麼她又會記住這本書的全部內容。

她現在正忙於閱讀其他書架上的書,因此每天只能閱讀這\(n\)本書中的一本,或是查詢從第\(l\)本書到第\(r\)本書中有多少書的內容她已經全部忘記了(但是這天並不會看這\(n\)本書)。

第一行有三個整數\(n,k,m(1\le n,k,m \le 10^5)\),表示這個暑假上書的數量、需要多少天忘記一本書的內容、詢問的天數。

接下來\(m\)行,每行第乙個整數是\(p(p\in\ )\),

如果\(p=1\),那麼後面有乙個整數\(x(1\le x\le n)\),表示這一天妲麗安重溫了第\(x\)本書;

如果\(p=2\),那麼後面跟兩個整數\(l,r(1\le l \le r \le n)\),表示妲麗安想知道從\(l\)到\(r\)有多少本書她已經全部忘光了。

輸出\(m\)行。如果這一天妲麗安閱讀了書籍,請輸出這本書在閱讀前她還記內容的\(k\)分之多少;如果這一天妲麗安在詢問,那麼請輸出詢問的結果。

5 3 5

1 12 1 4

1 32 1 5

1 3200

41每本書記住的內容:

天數\書的編號12

3450

3333

312$\to$322

2222

1111

3100$\to$300

4002

0050

01$\to$300

你需要知道的知識:

1.樹狀陣列(對於有n個元素的陣列,可以在o(log(n))次計算內獲得任意[l,r]區間的和 )

2.佇列(一種資料結構,特性是先進先出)

如果一本書完全忘記,則將它設為1,否則設為0;可以用樹狀陣列查詢區間[l,r]中1的書的個數。

用乙個last陣列記錄每本書最近一次被閱讀是在哪一天;設定乙個長為k的佇列q,記錄最近k天閱讀了哪本書(如果某一天沒有閱讀,則設為閱讀了第n+1本書);用cnt陣列記錄一本書在q**現了幾次。用這三個輔助陣列就可以實現對樹狀陣列的修改。

#includeusing namespace std;

const int n=1e5+10;

int n, m, k;

int a[n], cnt[n], last[n];

queueq;

int lowbit(int x)

void updata(int w, int x)

int query(int w)

int main()

//input

scanf("%d", &p);

if(p==1)else

}}

一共14個測試點,前10個完全隨機,11/12每天都讀,13/14每天都詢問。

資料生成**:

#includeusing namespace std;

mt19937 rnd(time(0));

const int n=1e5;

typedef tupletiii;

file *fw;

int n, k, m;

tiii data[n+10];

void fun1()

//output

fprintf(fw, "%d %d %d\n", n, k, m);

for(int i=1, p, l, r; i<=m; ++i)

} int main()

}

csuoj 給自己出題的小X

小x學習了dfs,為了練習搜尋,開始給自己出題玩。玩著玩著,一會把自己難住了,一會又被自己難倒了,真是有趣誒!小x出的題 現在有n個不同的正整數,求它們可以組成多少個這樣的集合,滿足 第一行,乙個正整數t t 20 表示資料組數。對於每組資料,有兩行。第一行為乙個正整數n 3 n 25 第二行為n個...

matplotlib,numpy自己動手安裝

最近想用python做些機器學習方面的事情,就買了本 機器學習實戰 研究,peter harrington編寫的,人民郵電出版社出版,2013年6月上市的。是本很新的書。首先第一件事情是配置學習環境,我個人的筆記本上安裝了pythonxy,什麼工具都安裝好了,很省心。我也想在實驗室的電腦上安裝配置好...

CSU1973 給自己出題的小X

本題本意是搜尋題,直接小優化剪枝裸搜即可,然而可以dp,看了石文斌的題解,設f i j k 為前i個數,選出j個,相差大於k的方案數,先預處理 f i 1 k 1 f i j k f l j 1 k 之和 a i a l k,a陣列先預處理成從小到大排序的序列 序列順序不影響方案數的 然後統計f i...