牛客暑假多校第二場J farm

2022-08-13 09:00:19 字數 1089 閱讀 9768

要求使用一種資料結構進行批量染色操作,且要求後面可以檢測是否被"其他顏色汙染"。

看了題解很容易想到,使用某種資料結構做批量增加的操作,之後檢測增加後的值是否能夠整除原來的元素。

考慮如果直接按照1、2、3、4進行賦值就會有:同樣是染色2次,有3+3 = 6和2+2+2 = 6,無法有效判斷整除。考慮加乙個操作:增加染色次數的判定,但是同樣也會有3+3 = 6 = 2+4的問題,因此對陣列進行重新設計,則直覺告訴我們,1,2,4,7,......an,an+n這個數列可以完美解決這個問題——不存在第2種組合可以使用相同數目的數列元素相加得到數列的某個其他元素。

因此,使用一位陣列開足夠大的陣列之後,動態的按照二維陣列的方式進行定址,即可完成上述操作。

#includeusing

namespace

std;

#define ll intmax_t

const

int maxn=4000233

;ll farm[maxn];

ll times[maxn];

ll color[maxn];

int maxx_numebr = 1

;int add_number = 1

;int

m,n,k;

void insert_mex(ll *v,int a,int

b,ll key)

a+=a&(-a);

}}ll find_mex(ll *v,int a,int

b) a-=a&(-a);

}return

cntt;

}void insert(ll *v,int a,int b,int c,int

d,ll key)

ll find(ll *v,int a,int

b)void

init()

}for(int i=0;ii)

int cntt = n*m;

int pos = 0

;

for(int i=0;ii)

}cout

}int

main()

牛客多校第二場 J farm

輸入描述 the first line of input contains 3 integers n,m,t n m 1000000,t 1000000 for the next n lines,each line contains m integers in range 1,n m denotin...

18牛客第二場 J farm

示例1輸入 2 2 2 1 22 3 1 1 2 2 2 2 1 2 1 1 輸出題意 給出乙個n m的區域,t次操作 每個點都是一種植物 t次操作區域覆蓋肥料,如果區域裡面的植物不等於覆蓋的飛亮那麼就植物死亡,求有多少植物死亡。思路 我們將每種植物的座標存下來,然後我也將每種肥料的覆蓋區域座標存下...

牛客多校第二場Jfarm(隨機化演算法)

牛客多校第二場jfarm 隨機化演算法 題目大意 有一塊大小為n m的農田,每乙個地上都種著種類為a i j 的植物,接下來要進行t次農藥噴灑,每次會對左上角為 x1,y1 右下角為 x2,y2 的矩陣噴灑型別為k的農藥,如果被噴灑的植物的種類和農藥的種類不同 也就是a i j k 這個植物就會死掉...