2013第一場多校

2022-08-20 17:57:06 字數 779 閱讀 4410

多校第一場:

1011

(1)、將每個數對應的4種情況求出來,並儲存每個數對應的狀態。

(2)、問題轉化為:共有16種卡牌,每種卡牌可以選ai個,選了某種卡牌將得到bi的權值。將所有選定的bi進行|運算,若4位中的某一位為0,則需要額外的花費。

(3)、直接進行2^16的列舉,表示某種物品選還是不選,每個物品至少選乙個,然後剩下的物品按權值從大到小貪心。

1002

(1)、將原樹對映到一棵字典樹上。

(2)、在原樹上進行dfs,求出每個節點屬於哪一層,並儲存dfs的時間戳,儲存hash值。

(3)、將不同層的節點儲存到對應的vector中,並按照時間戳排序。

(4)、求出字典樹上每個節點對應的權值。(越小字典序越大)

(5)、給定祖先節點u與相對長度,按照時間戳可以二分出子孫節點在對應某一深度的vector中的範圍。

(6)、在給定範圍內,進行rmq求出某一節點對映到字典樹上的權值最小,找到這一節點,然後通過hash值的運算,得到答案。

1007      幾何,最小路徑覆蓋

(1)、將線段拆成兩點,求出包括城市內n+2m個點內,每兩點之間是否能夠直接相連。若能,則dis[i][j]=caldis(i,j),否則dis[i][j]=inf;

(2)、使用floyd預處理每兩點之間距離。

(3)、二分揹包的大小。因為城市有占領的先後順序,所以若兩點之間距離小於揹包大小,則在兩點之間連線一條有向邊。最後構出來的圖是乙個有向無環圖,於是可以轉化為最小路徑覆蓋問題。直接用二分匹配作為check,二分揹包大小得到答案。

2013多校第一場

c 找規律的題。主要是把題目裡的加法與去火柴的模型聯絡起來,然後利用排列組合的原理找公式。小結 我一開始一直在研究每個數和每個數出現的次數,以及題目給的f n 2 n 1 有啥關係,最後也沒研究個啥結論,看題解才知道的。include include include include include ...

2023年多校聯合第一場

c題 數論題目,討論n和k的大小關係,很明顯n k時輸出1,n k 1時是2,nk時推出公式2 n k n k 1 2 n k 2 然後通過整數快速冪就可以了 對於1 k n,我們可以等效為n個點排成一列,並取出其中的連續k個點。下面分兩種 情況考慮 第一種情況,被選出的不包含端點,那麼有 n k ...

2020多校第一場1005

利用斐波拉契數列的通項公式。先利用二次剩餘和逆元得出三個常數。將式子多項式展開,發現等比數列的規律。遍歷k,等比求和,用逆元求組合數。include include include using namespace std typedef long long ll const int n 100005...