聯賽模擬測試33 題解

2022-02-17 23:53:23 字數 1988 閱讀 8406

沙雕題,不會建議重修區間dp

較有趣的沙雕題

容易發現聚落一定聚在一起,外牆一定是六邊形

考慮沒新加一條邊對答案的影響

以當前囊括的最大正六邊形不斷向外擴充套件

通過小學的平移知識(建議用wps畫圖)可知每加一條邊,新增的房子為:\(r,r+1,r+1,r+1,r+1,r+2\)

所以直接找到當前囊括的最大正六邊形,擴充套件即可

找最大正六邊形要列舉 \(i\) ,時間複雜度 : \(o(\sqrt n)\)

#include#include#include#includeusing namespace std;

const int maxn=1e3+5,inf=0x3f3f3f3f,base=131;

inline int read()

while(ch>='0'&&ch<='9')s=s*10+ch-'0',ch=getchar();

return s*w;

}int n,a[22]=;

int main()

cout考時發現怎麼調基環樹都調不出來,考後發現一定是內向基環樹,然後還沒發現暴力打掛,連樹的 \(10pts\) ,暴搜的 \(30pts\) 都丟了

對於樹的情況,可以從上往下按,每個點都可以按掉,所以直接找節點每個兒子的最大值

對於基環樹的情況,拋去寫的十分複雜的官方題解,發現環上的所有邊一定有一條不會走滿

對於每個環上的點,不管有沒有樹邊,一定可以是直接刪的代價,有樹邊就是最大環上臨接邊-最大樹臨接邊,最後所有中取 \(min\) 即可

變數名不規範,爆零兩行淚

還沒寫,rua~

聯賽模擬測試33

區間dp g i j 表示從第i位到第j位中間有多少不重複出現的數字 f i j 表示合併i到j能獲得的收益之和 特隊兒在寫的時候 正序遍歷掛成零分 原來是沒有學習經驗 還是要注意遍歷方法 眾所周知,乙個合格的oier不僅要會數奧,物奧,生奧 甚至還要會一點點美術 考試的時候畫了好久 打表拿到了 5...

聯賽模擬測試34

考場打表 rand 正解可以根據乙個倍數往上翻 如果乙個數b是a的n倍,那麼b可以由a貼上n次得到 開乙個佇列按照每個因數倍增幾次取最小即可 藍書原題 csp考試之前還看來著 然後考場假了 打了暴力滾粗 下來之後一點就透了 等比數列求和 對於唯一一組hack資料 是mod完階乘出0了 特判一次直接往...

聯賽模擬測試32

a.迴圈依賴 思路對了 dfs 判環打掛了沒啥好說的 下午來了 tarjan 一遍碼過 但還是學習了一下凱爹的 dfs 可能魔改過了一些地方?總之學廢了,注意判自環 b.a開始迴圈依賴 20pts 暴力隨便打 考場上本來想按照值域預處理一下 看到 10000 就爪巴了 至於 a i 1 的情況只想出...