習題日常第二十五練

2021-10-09 05:31:52 字數 2787 閱讀 5250

這個題是線段樹的基礎綜合運用題。對於細節要求特別高,需要對每乙個標記以及互相之間的關係相當清晰。大體的思路就是連續的0或者1只可能出現在左面或者最右面或者序列中間,用線段是進行維護即可。具體見**。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long int

const

int mod=

10007

;using

namespace std;

struct node

t[400010];

int a[

100010];

void

pushdown

(int ri)

void

build

(int l,

int r,

int ri)

else

return;}

int mid=

(l+r)

>>1;

build

(l,mid,ri<<1)

;build

(mid+

1,r,ri<<1|

1);pushdown

(ri)

;return;}

voidc0(

int ri)

voidc1(

int ri)

voidre(

int ri)

void

add1

(int ri)

;void

add0

(int ri)

;void

reve

(int ri)

;void

push1

(int ri)

void

push0

(int ri)

void

pushre

(int ri)

void

add1

(int ri)

void

add0

(int ri)

void

reve

(int ri)

void

gai0

(int l,

int r,

int ri)

int mid=

(t[ri]

.l+t[ri]

.r)>>1;

if(l<=mid)

gai0

(l,r,ri<<1)

;if(r>mid)

gai0

(l,r,ri<<1|

1);pushdown

(ri)

;return;}

void

gai1

(int l,

int r,

int ri)

int mid=

(t[ri]

.l+t[ri]

.r)>>1;

if(l<=mid)

gai1

(l,r,ri<<1)

;if(r>mid)

gai1

(l,r,ri<<1|

1);pushdown

(ri)

;return;}

void

gaivy

(int l,

int r,

int ri)

int mid=

(t[ri]

.l+t[ri]

.r)>>1;

if(l<=mid)

gaivy

(l,r,ri<<1)

;if(r>mid)

gaivy

(l,r,ri<<1|

1);pushdown

(ri)

;return;}

intqurry1

(int l,

int r,

int ri)

int mid=

(t[ri]

.l+t[ri]

.r)>>

1,ans=0;

if(l<=mid)

ans+

=qurry1

(l,r,ri<<1)

;if(r>mid)

ans+

=qurry1

(l,r,ri<<1|

1);return ans;

}int

qurrylian1

(int l,

int r,

int ri)

int mid=

(t[ri]

.l+t[ri]

.r)>>

1,ans=0;

if(l<=mid&&r>mid)

if(l<=mid)

if(r>mid)

return ans;

}int

main()

else

if(y==1)

else

if(y==2)

else

if(y==3)

else

}return0;

}

習題日常第二十四練

這個題有點繞。我們可以通過從終點出發,將已知邊反向,用bfs搜,找到可以直接到達終點的點。再通過對每個點遍歷,若這個點不能到終點,則反向後的所有與它相連點都不能到。但是注意,此時刪點有後效性,需要用兩個陣列完成。最後在所有合法點上再跑一遍迪傑斯特拉演算法求最短路即可。include include ...

第二十五天

程序 資源分配的最小單元 程序的組成 程式 資料和程序控制塊 pcb 所有的排程都是提前準備的 程序的經典三態 執行 就緒 等待 父程序的id ppid 啟動程序的使用者id uid 排程演算法 1.先來先服務 2.短程序優先 3.高優先順序優先 4.時間片輪轉法 一般都是用這個 先來先服務演算法的...

第二十五天

學會了final的相關使用方法 明天學習abstract關鍵字 一 final關鍵字 final關鍵字是最終的意思,使用final修飾類,代表該類不能被繼承。final修飾方法表示該方法不能被重寫。final修飾變數,代表該變數是常量 1 final方法 使用final修飾方法時,該方法不能被重寫,...