HDU 6313 Hack It(構造 數論)

2021-08-26 23:45:05 字數 2479 閱讀 4083

description

給出下面乙個**用來判斷乙個n×

n n×n

的01 01

矩陣中是否存在乙個子矩形的四個角的值均為

1 1

0siterate through all 1s in

the matrix:

suppose this 1 lies in grid(x,y)

iterate every row r:

if grid(r,y)=1:

++count[min(r,x)][max(r,x)]

ifcount[min(r,x)][max(r,x)]>1:

claim there is a rectangle satisfying the condition

claim there isn't any rectangle satisfying the condition

要求構造乙個n×

n' role="presentation" style="position: relative;">n×n

n×n的

01 01

矩形使得1≤

n≤2000

1 ≤n

≤2000

且至少有

85000

85000

個位置是

1 1

,使得其不存在四個角均為

1' role="presentation" style="position: relative;">1

1的子矩形但是上述**的執行結果會判斷為存在

input

output輸出

n n

以及這個n×

n' role="presentation" style="position: relative;">n×n

n×n的

01 01

矩陣sample input

sample output

solution

顯然只要一行有兩個

1 1

且不存在四個角都為

1' role="presentation" style="position: relative;">1

1的矩形即為反例,問題轉化為構造

n n

個序列使得任意兩個序列不存在兩個都為

1' role="presentation" style="position: relative;">1

1的位置給定0

≤a,b

,c,d

<

p 0≤a

,b,c

,d

<

p,其中

p p

為素數,假設對於兩個不同的

k' role="presentation" style="position: relative;">kk滿足

a+kb

=c+k

dmod

p a+k

b=c+

kdmo

dp

,則有a=

c,b=

d a=c

,b=d

,故取不同的二元組(a

,b) (a,

b)

,通過a+

kbmo

dpa +k

bmod

p可以構造出來p2

p

2個長度為

p p

的序列,且這些序列中任意兩個序列不存在兩個位置的值相同,那麼我們取素數

47' role="presentation" style="position: relative;">47

47滿足472

>

2000472

>

2000

,把2000

2000

分成若干長度為

47 47

的段,第

k k

段的第a+

kb m

od p

' role="presentation" style="position: relative;">a+k

bmod

pa+k

bmod

p個值為

1 1

,其餘值為

0' role="presentation" style="position: relative;">0

0,則可以構造出滿足條件的矩陣

code

#include

using namespace std;

int main()}}

}else

break;

} return

0;}

多校2 hdu 6313 Hack It (構造)

題意 構造乙個圖,滿足任意乙個子矩形中其四角不都為1,並且要使得圖中1的個數要超過85000個。參考題解 這題我們需要構造,舉個5 25的例子,構造方法如下 當我們取質數5時,1的位置 在 j 上 依次 0,1,2,3,4,5.mod 5 的 意義下 構造第一塊 0 10000 10000 1000...

hdu 3483 矩陣構造

這道題寒假的時候看過,還不小心看了題解,不過題解說神馬早就忘了,剛開始解題的時候完全想錯了,後來才想起來是用矩陣構造 這道題的確適合構造矩陣,因為所求的函式值滿足線性關係,令f n 為最終求解值 首先我們要明確如果用矩陣的作法,那麼矩陣乘法中,最終矩陣,必須包含f n 還可以包含其他函式g n h ...

hdu2276 矩陣構造

題意 給了n個燈泡的狀態,他們繞成乙個環,0是滅,1是亮,每一秒燈泡的狀態都會改變,規則是如果當前這個燈泡的左邊的燈泡當前是狀態1,那麼下一秒當前的這個燈泡狀態就改變0變1,1變0,最後問你m秒後的狀態。思路 我們先找當前狀態和下乙個狀態的關係 狀態也就是秒 我們可以抽象成這麼一種關係,如果第i個燈...