Educational Codeforces Round 106 個(gè)人題解

比賽鏈接:https://codeforces.com/contest/1499/
官方題解:https://codeforces.com/blog/entry/88812
難度:Edu


A. Domino on Windowsill
題意:給一個(gè)? 的格子圖,第一排前?
個(gè)格子是白色,后面是黑色;第二排前?
個(gè)格子是白色,后面是黑色。有?
個(gè)白色?
骨牌,
個(gè)黑色?
骨牌,白色骨牌只能放在白色格子上,黑色骨牌只能放在黑色格子上,且骨牌間不能重疊,問能否將所有骨牌放到格子上。
題解:求白色區(qū)域和黑色區(qū)域分別最多能放多少骨牌,與輸入比較即可。
B. Binary Removals
題意:給一個(gè)? 串,問能否去掉一些位置,任意兩個(gè)位置不相鄰,使得最終串是單調(diào)不降的。
題解:找一個(gè)分界線,分界線左邊的? 全部去掉,右邊的?
全部去掉。如果答案存在,那么就存在一條分界線,其左邊不存在相鄰的?
且右邊不存在相鄰的
。
C. Minimum Grid Path
題意:從? 走到
,只能向右或向上走,且走出的折線每段長度都為整數(shù)。若最終路線由?
條線段組成,第?
條長度為
,那么總花費(fèi)為
,其中?
為第?
條線段的單位長度花費(fèi),由輸入給定。在?
的條件下,求最小花費(fèi)是多少。
題解:由對(duì)稱性,不妨設(shè)最開始向右走,此時(shí)如果向右的線段有? 條,那么向上的線段就有?
或?
條。此時(shí)我們可以嘗試解決子問題,即當(dāng)向右的線段有?
條時(shí)的最小花費(fèi)是多少,向上的線段同理。由于這?
條線段的單位長度花費(fèi)是確定的,我們只需要讓單位長度花費(fèi)最小的線段盡量長,其他線段長度為?
即可。遍歷?
的過程需要維護(hù)最小值與花費(fèi)和,時(shí)間復(fù)雜度
。
D. The Number of Pairs
題意:給定 ,求有多少對(duì)正整數(shù)
,使得
。
題解:令 ,
,
,可知?
和?
互質(zhì),
。原式化為
,即
。由此可知,
一定為?
的因數(shù)。枚舉
,可以確定?
的值,然后算出有多少對(duì)?
和?
滿足條件即可。令
,此時(shí)則需要解決?
能夠分解為多少對(duì)互質(zhì)數(shù)的乘積,可以推出答案與?
的不同質(zhì)因子個(gè)數(shù)有關(guān),一個(gè)數(shù)不同質(zhì)因子個(gè)數(shù)可以通過歐拉篩進(jìn)行預(yù)處理,最終時(shí)間復(fù)雜度
。
后面的題目暫未解決。