牛客練習賽9

2021-08-14 05:12:26 字數 1832 閱讀 7198

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 32768k,其他語言65536k

64bit io format: %lld

珂朵莉想每天都給威廉送禮物,於是她準備了n個自己的本子

她想送最多的天數,使得每天至少送乙個本子,但是相鄰兩天送的本子個數不能相同

珂朵莉最多送幾天禮物呢

第一行乙個整數n
第一行輸出乙個整數,表示答案
示例1

4

3

第一天送1個本子

第二天送2個本子

第三天送1個本子

對於100%的資料,有1 <= n <= 1000000000

思路:其實就是3個本子(因為要想最多不是1 2就是 2 1),所以判斷本子數*2/3即可,若與3求餘有餘數,則需要再加一

**:

#include #include #include #include #include #include #define ll long long

#define maxn 10005

#define inf 1000000001

using namespace std;

int main()

else if(i>=10&&i<=99)

else if(i>=100&&i<=400)

}cin>>n;

cout<

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 131072k,其他語言262144k

64bit io format: %lld

珂朵莉給你乙個有根樹,求有多少個子樹滿足其內部節點編號在值域上連續

一些數在值域上連續的意思即其在值域上構成乙個連續的區間

第一行有乙個整數n,表示樹的節點數。

接下來n–1行,每行兩個整數x,y,表示存在一條從x到y的有向邊。

輸入保證是一棵有根樹。

輸出乙個數表示答案
示例1

5

2 32 1

2 44 5

5

節點1子樹中編號為1,值域連續

節點3子樹中編號為3,值域連續

節點5子樹中編號為5,值域連續

節點4子樹中編號為4,5,值域連續

節點2子樹中編號為1,2,3,4,5,值域連續

對於100%的資料,有n <=100000

思路:通過數狀dp來求解,求乙個區間數的最大結點和最小節點,然後在和區間內的節點數相比較,如果相等則可以

**:#include#include#includeusing namespace std;

const int max=100010;

struct edge

edge[max*2];

int head[max];

int vv[max]; //找根節點

int vis[max];

int maxx[max];

int minn[max];

int len[max];

int n, k;

void addedge(int u,int v)

int dfs(int now)

for(int i=1; i<=n-1; i++)

int now=0;

for(int i=1; i<=n; i++)

}dfs(now);

int ans=0;

for(int i=1; i<=n; i++)

{//cout<

牛客練習賽15

時間限制 c c 2秒,其他語言4秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 第一次期中考終於結束啦!沃老師是個語文老師,他在評學生的作文成績時,給每位學生的分數都是乙個小於10的非負小數。amy 8.99999999999999999999...

牛客練習賽5

給你n個正整數,n 5,每個正整數大小不超過1000,最初su m 0 sum 0 每次可將su m sum 按順序加上陣列中的數,加完之後可以對sum的數字進行全排列,求最終能達到的最大值。由於n只有5,所以按照題意模擬dfs實現就可以了,注意最後一組也可以按數字進行全排列。d題 include ...

牛客練習賽24

a石子列陣 快速冪取模 第乙個位置可以有m種選擇,其他每個位置m 1種 include include include includeusing namespace std const int mod 1e9 7 long long quick power long long a,long long...