UESTC 1292 卿學姐種花 (分塊)

2021-07-23 11:27:27 字數 1175 閱讀 5771

題意:給出乙個長度為n的序列,m次操作,操作分為兩種:

1.在x的位置上加上數y,在x+1的位置加上數y-1,以此類推,一直到n或者y為0.

2.詢問x位置上數字為多少

分析:乍一看像是線段樹,但是貌似又很難用線段樹解決,主要是區間不好處理,而分塊對於這類題目有優勢,在區間上更容易計數,對於每個塊,對於1操作,如果某個塊全覆蓋,記錄兩個值,增值和差值,通過加加減減就能得到答案,如果不是全覆蓋直接sq

rt(n

) 處理值,複雜度o(

m∗sq

rt(n

))

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

//#pragma comment(linker, "/stack:1024000000,1024000000");

using

namespace

std;

#define inf 0x3f3f3f3f

#define maxn 20004

long

long mod = 772002+233;

long

long a[maxn];

int n,q;

int belong[maxn],l[maxn],r[maxn],block,num;

int val[maxn],del[maxn];

void init()

for(int i=1;i<=num;i++)

}void update(int x,int y,int num)

return ;

}for(int i=x;i<=r[belong[x]];i++)

for(int i=belong[x]+1;ifor(int i=l[belong[y]];i<=y;i++)

}long

long query(int x)

return temp%mod;

}int main()

init();

while(q--)

else}}

return

0;}

1292 聖誕老人

這道題是一道動態規劃題 for int j 0 j 上面是該題的式子。例如 測試資料 315 199 155 301 215 170 150 25 當發射第二顆飛彈時i 2,我們另j 0。首先a j a i 即a 0 a 2 成立。於是我們看一下ans j 1 ans i ans 0 1 ans 2...

uva1292 基礎樹形dp

思路 題目的意思是,遊一棵樹或者是森林,然後要在某些節點上放置乙個警察來防衛,然後每個警察呢只能防衛到自己所在節點和相鄰的節點,求所有節點都在直接或間接被防衛的時候需要的最少警察數目。意思顯然,然後就是dp了 對於當前節點的決策是選與不選,dp i j 表示第i個節點的是否直接放置警察 初始化是dp...

1292 寵物小精靈之收服

寵物小精靈是一部講述小智和他的搭檔皮卡丘一起冒險的故事。一天,小智和皮卡丘來到了小精靈狩獵場,裡面有很多珍貴的野生寵物小精靈。小智也想收服其中的一些小精靈。然而,野生的小精靈並不那麼容易被收服。對於每乙個野生小精靈而言,小智可能需要使用很多個精靈球才能收服它,而在收服過程中,野生小精靈也會對皮卡丘造...