機房模擬20180813

2021-08-22 19:31:04 字數 873 閱讀 7397

我們可以輕鬆地發現這道題是一道dp的題目

對於整張圖來說,總共有2*n-2地度數,由於每乙個點都至少有乙個度數,我們就只剩下n-2的度數可以進行自由分配

我們將每個點看做乙個點加上一條沒有連上其他點的邊,然後在更新的時候將所有點聯向當前樹的葉子節點上,然後根據其度數做一下揹包就好了

f[i] 表示樹上已經有i 個點的最佳權值

假設度數為i的貢獻為a[i],當乙個節點插入的時候,會損失a[1]的價值,增加a[i-j+1]的價值,所以轉移方程為

f[i]=max(f[i],f[j]+a[i-j+1]-a[1]),1<=j<=i;

然後直接轉移即可

這道題是今天最難的題了.......

k%i可以轉化成k-floor(k/i),所以說在連續一段以內的除法德商完全相同,只有被除數k不同,而這一段是連續的,所以可以使用等差數列求和

數的因數不會超過sqrt(n),所以每一次列舉商相同的塊,for迴圈跑一遍就出答案了

今天最水的題目,直接二分答案,然後向左右一次減一,等差數列求和,然後判斷是否可行.....(這道題基本全a.......)

總結一下....t2的正解沒有想到,但是靠優化的暴力苟了70分(資料梯度不大.....只有3組是超過了1e8的)

t3水過

t1手推失敗.....

noip機房模擬

終於進入了每日考試的階段.t1 1.1 問題描述 羅馬字母i v x l 分別對應著1,5,10,50。其他的字母不允許使用。乙個長為n 由羅馬字 母組成的字串,我們不計順序地計算它所對應的數值。如 v 代表35,ixi 代表12。注 意ix 代表11 而不是9。對於長度n 的由上述羅馬字母組成的字...

2018 08 13 流程控制

關於流程控制的學習大致分為兩個內容,分支語句和迴圈語句。一 分支語句 if分支語句 if 概述 在某些情況下,需要當某一條件滿足時才執行相應 條件不滿足則執行其他 if 四種形式 單分支 雙分支 多分支 巢狀if 單分支 if 布林表示式 雙分支 if 布林表示式 else 多分支 多個語句塊中只執...

2023年 10 月 9 日 機房模擬賽

t1是揹包問題,但是我不知道正解 正解是狀態巧妙的揹包問題 include include include include using namespace std const int maxn 2000 100 int n,m,dp maxn 10 tail struct p p maxn 10 b...