牛客OI周賽5 提高組 B 可愛 星空

2022-05-20 21:57:51 字數 1145 閱讀 4407

**: 嘻嘻嘻

「當你看向她時,有細碎星辰落入你的眼睛,真好。」——小可愛

在乙個繁星閃爍的夜晚,卿念和清宇一起躺在郊外的草地上,仰望星空。

星語心願,他們,想把這片星空的星星,連成一棵漂亮的樹,將這美好的景色記錄下來。

現在,天上共有n顆星星,編號分別為1,2.....n,一開始任何兩個點之間都沒有邊連線。

之後,他們兩個想在在(u,v)之間連無向邊,需要付出|u聯通塊大小-v聯通塊大小|的代價。

他們兩個想用最少的代價來使這n個點聯通,所以他們想知道最小代價是多少。

(多組資料

第一行乙個正整數,表示資料組數t

接下來t行每行乙個正整數,表示詢問的n

t行,每行乙個數表示答案

示例1複製

1

5

複製

2
1,2....5五個點,連邊順序為(1,2),(3,4),(1,5),(5,3),代價為0,0,1,1,總代價為2,是n=5的時候最優答案。

雖然(1,2),(2,3),(3,4),(4,5)也可以,但是代價為0,1,2,3,總代價為6,比2大。

對於20%的資料,t<=2,n<=10

對於40%的資料,t<=10,n<=1000

對於60%的資料,t<=100000,n<=100000

對於另外40%的資料,t=1,n<=1000000000000

題解:

加一條邊可以看成兩個數相加,比如:n=11,那麼肯定是 5+6=11,使得代價最小為1,那5呢,也肯定是2+3=5代價最小為1,6肯定是3+3=6使得代價最小為0,t的資料比較小,遞迴就沒有然後了。

**:

/* 11

5 6

2 3 3 3

1 1 1 2 1 2 1 2

*/#includeusing namespace std;

typedef long long ll;

ll result(ll n)

else return result(n/2)*2; //代價為0

}int main()

return 0;

}

牛客OI周賽3 提高組B 1408 dp

lin k frak link 原題在atc oder frak atcode r上下面有一大段廢話。其實這道題挺簡單的 有兩種東西混一起的題目已經有不少了,不過我還是沒想出來 主要是根本沒有往d p frak dp上面想,看見排序題就想著怎麼貪心了 有一類題形如通過交換使序列有序的 最基本的問題是...

牛客OI周賽9 普及組

目錄a題 b題 c題 小q挺喜歡擼串的,沒錯,字串!你給小q送上了n個字串 對於乙個字串s,如果在小q擼掉 刪除 任意個字元之後,nowcoder 是其子串,則這個字串s是可擼的。小q最近切題切到手軟,想擼串散散心。如果你給他呈現的字串是可擼的,他會很開心,否則他會很桑心。輸入描述 乙個整數n,表示...

牛客OI周賽14 普及組

菜的真實,普及都 ak 不掉.score 100 100 100 0 300 rank 16 看來 pj t1 考字串讀入成鐵上釘釘了?考慮開桶 a 記錄 ascii 為 i 的字元是否出現即可。includeusing namespace std typedef long long ll cons...