2023年紹興文理學院元培學院ACM試題總結

2021-09-12 19:22:31 字數 3091 閱讀 6707

暴力能過,但是正解是貪心

要使初始狀態變為目標狀態,我們不僅需要兩個狀態相鄰雕像的相對朝向相同,還需要每個雕像的絕對朝向相同。

觀察四種操作,我們可以發現:

操作一,僅改變所有雕像的絕對朝向。

操作四,改變「朱雀」和的相對朝向。

操作二,改變和的相對朝向。

操作三,改變和的相對朝向。

所以,我們可以按照最少使用操作

三、二、四的順序,修改「玄武」和「白虎」、「青龍」和「玄武」、「朱雀」和「青龍」的相對朝向,最後再用操作一修改絕對朝向,即可使用最少操作達到目標狀態。

時間複雜度o(1)。

直接每個點移一下的話是完全可以在n

nn次內完成的,我們的目的就是盡可能偷點懶,一些點不移動

手玩一下樣例以後會發現實際上是求s

ss的子串行和t

tt的子串相同的最大長度

因為我們可以把s

ss選中的這些點不動,其他的放到前面或後面,發現這些點並在了一起,並且相對順序沒變,所以可以做到與t

tt完全相同

具體做法可以使用雙指標

時間複雜度o(n

2)

o(n^2)

o(n2)

當小太陽先手時,手動模擬可以發現只有n

nn是3

33的倍數,且aiai

ai都為1

11的情況小太陽才會輸

(如果熟悉巴什博弈的話,可能不用模擬也能想到3

33這個數)

當黑孔雀先手時,因為黑孔雀想贏所以肯定想轉換到上述小太陽會輸的狀態,

所以小太陽在n

nn是3

33的倍數,且有n−1

n-1n−

1個數為1

11時會輸(這時黑孔雀只需從不是1

11的那堆石子裡拿掉一些石子使狀態變為1 1 1),

或者n

nn是3

33的倍數餘1

11,且n−1

n-1n−

1個數為1

11時會輸(此時黑孔雀只需拿掉一堆石子,小太陽就到了必輸態) 從1…i

nf

1…inf

1…in

f,每乙個分母,都有選中和不選中兩種狀態,如果選中,那麼就減去這個分數,沒有就是跳過,我們可以逐次放寬項數的限制,即迭代加深搜尋。

主要的兩個剪枝如下:

1.

1.1.

限制開頭:並不是每次都要從1

11開始遍歷分母

假設現在要分解a

b\frac

ba​,那麼分母b

a\frac

ab​就是起點:1ba

=a

b\frac}=\frac

ab​1​=

ba​ ,假設起點s

s<\frac

s​,那麼顯而易見,起點的分數已經比我們要的總和a

b\frac

ba​大了。

2.

2.2.

限制結尾:

比較簡單的限制結尾可以這樣看:如果我已經找到分母k了,而現在要分解得分數是a

b\frac

ba​,現在還要找m

mm個單位分數,

那麼可以想象:有可能 m

k

\frac<\frac

km​​,也就是說就算全是1

k\frac

k1​,我湊夠m

mm個,也達不到a/b

a/ba/

b,那麼說明前面的分配方案肯定有無,直接可以ret

ur

nreturn

return

了。加上這個剪枝已經可以得到答案了,只是時間有點慢罷了。

因為查詢次數較多,範圍較大,所以我們記錄探索完i

ii個點所需最小xxx。

設f [i

][u]

[0/1

]f[i][u][0/1]

f[i][u

][0/

1]為探索完u

uu的子樹中i

ii個節點(包括自己),是(1)

(1)(1

)否(0

)(0)

(0)回到u

uu的最短路徑長

然後在樹上每個點做一邊揹包就好了

要注意的是,做揹包時不能從1

11到n

nn列舉,這樣總複雜度是o(n

3)

o(n^3)

o(n3)的

考慮到u

uu中選的點數一定≤si

ze[u

]≤size[u]

≤size[

u],那麼dpdp

dp時可以只列舉到siz

e[u]

size[u]

size[u

]這時就會發現複雜度降為了o(n

2)

o(n^2)

o(n2

)原理戳這

#include

#include

const

int n=

502;

int t,i,tot,h[n]

,l,r,mid,f[n]

[n][2]

,n,x,y,z,vis[n]

,q,sz[n]

;struct nodee[n<<1]

;inline

chargc(

)inline

intrd()

inline

void

wri(

int a)

inline

void

wln(

int a)

inline

intmin

(int x,

int y)

void

add(

int x,

int y,

int z)

,h[x]

=tot;

}void

dfs(

int u,

int fa)

}int

main()

wln(l);}

}}

2023年暑假紹興集訓(7 04 7 14)

上個月由於期末考試和準備防震減災知識競賽的緣故幾乎沒去過機房,因此差不多快乙個月沒碰過電腦了。而防震減災知識競賽剛好是在 jul 4th 舉辦的,因此我就無法和其他人一起坐車去紹興,只得自己在比賽完後晚上坐高鐵趕往。不管怎樣,對這次集訓還是挺興奮的吧。今天上午 下午在麗水進行防震減災知識競賽,我們學...

2019暑假紹興第一中學遊記

12 40到了衢州二中,老葉講了點東西就上路 去紹興 了。路上坐大巴坐了四個小時,看 abc 寫了下他部落格的 argon 主題,然後做了會兒作業。到了紹興第一中學旁邊的某學校的交流中心下榻,和 abc 乙個房間,打了 10161.一本通 5.2 練習 4 葉子的染色,再複習了下板子 11 30 就...

2023年總結,2023年展望

2018年已經過去13天,遲來的年度總結。仔細想想2018年,自己究竟了做了什麼?還有什麼事沒有做?這一年是否虛度?這一年自己是否又滿意?2018年,完成的事情2018年,沒做的事情 1 沒有好好沉澱下來,回顧 分析演算法題 2 沒有養成早睡早起的習慣 3 沒有鍛鍊好體魄 4 還有幾本書沒有看完 這...