qzezoj 1547 疫病控制

2021-10-04 10:38:14 字數 3007 閱讀 3842

題面傳送門

話說這道題題面和題目一點兒不沾邊啊qaq

qaqqa

q,而且還有錯別字:大公尺有32768

32768

3276

8棵(顆)……

扯了半天,題目要求解乙個方程組:ax1

+bx2

+cx3

+dx4

=0

ax1+bx2+cx3+dx4=0

ax1+bx

2+cx

3+dx

4=0,0

<=x

1,x2

,x3,

x4

<=m

0<=x1,x2,x3,x4<=m

0<=x

1,x2

,x3,

x4<=m

第一想法:列舉:四重迴圈,列舉x1x1

x1,x 2x2

x2,x 3x3

x3,x 4x4

x4,複雜度o(n

4)

o(n^4)

o(n4

)**誰都會打(只不過沒打而已)

第二想法:構造:三重迴圈,列舉x1x1

x1,x 2x2

x2,x 3x3

x3,把x 4x4

x4解出來,若滿足不等式,則方案數++++

++**實現:

#include

using

namespace std;

int a,b,c,d,m,ans,pus,now;

intmain()

for(i=

0;i<=m;i++)}

}printf

("%d"

,ans)

;}

第三想法:數論優化:兩重迴圈,列舉x1x1

x1,x 2x2

x2,求出x3x3

x3與x 4x4

x4的最小公倍數,並列舉出第一種解,然後每次迴圈加上最小公倍數,可以理解成用x4g

cd(x

3,x4

)\frac

gcd(x3

,x4)

x4​個x3x3

x3替換x 3g

cd(x

3,x4

)\frac

gcd(x3

,x4)

x3​個x4x4

x4.**實現(不知道為什麼,比不優化t

tt的還多):

#include

#include

using

namespace std;

int a,b,c,d,m,ans,pus,now,lcm;

intmain()

for(i=

0; i<=m; i++

)elseif(

!d)else}}

}}printf

("%d"

,ans)

;}

第四想法:數形結合。利用平面直角座標系,列舉x1x1

x1,x 2x2

x2後,列舉兩個點,然後確定一條直線,在這條直線的0

00與m

mm之間找整點。**尚未成功,同志還需努力

第五想法:折半搜尋,列舉一半,用map

mapma

p記錄,再列舉一半,在map

mapma

p中查詢是否有點,加入答案。兩重迴圈。

**實現(也不知道怎麼回事,比三重迴圈t

tt得多):

#include

#include

using

namespace std;

int a,b,c,d,m,ans;

map<

int,

int> fz,ff;

intmain()

}for

(i=0

;i<=m;i++)}

printf

("%d"

,ans)

;}

第六想法:同第五想法一樣,只不過用了uno

rder

ed_m

ap

unordered\_map

unorde

red_

map,本質是雜湊

第七想法:手寫雜湊,這裡用開放定址法,其實掛鍊錶法和鄰接表差不多,但更麻煩。開放定址法的主旨是:如果位置被佔,就往後移。

**實現:

#include

#include

using

namespace std;

int a,b,c,d,m,ans,f1[

5000039

],f2[

5000039

],g1[

5000039

],g2[

5000039];

inline

void

get1

(int x)

f1[tmp]

=x; g1[tmp]++;

}inline

void

get2

(int x)

f2[tmp]

=x; g2[tmp]++;

}inline

intfind1

(int x)if(

!g1[tmp]

)return0;

return g1[tmp];}

inline

intfind2

(int x)if(

!g2[tmp]

)return0;

return g2[tmp];}

intmain()

}for

(i=0

;i<=m;i++)}

printf

("%d"

,ans)

;}

(154)光照通道

光照通道 lighting channels 使動態光源僅在其光照通道發生重疊時才對物體產生影響。它主要用於動畫,使使用者能更自如地掌握actor的照亮。當前虛幻引擎支援最多 3 種光照通道。定向光源 聚光源 點光源和可被光源影響的所有 actor 靜態網格體 骨架網格體等 均預設啟用lightin...

qzezoj 1568 反覆求和

題面傳送門 這道題首先要有乙個思維的轉換 對於選擇滿足0 i n0 leq i n 0 i n 的任意下標i ii 並讓a aa陣列裡下標為i ii處的值變為sum sumsu m。把賦值的思維轉化成選擇乙個下標,把除了這個下標的所有值加到它身上 這道題正著想很難想,俗話說得好,正難則反,所以我們不...

qzezoj 1540 糖果峽谷

題面傳送門 三十分 於是我只能重新想思路。然後就只得了35 3535 分。考試結束後老師叫我們自己去網上找題解,然而我發現,居然沒有任何一篇luo gu luogu luog u題解是正解。於是我準備發一篇題解來k kk掉luo gu luogu luog u所有題解。正解 我們先把這個峽谷想象成乙...