時間限制: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
52 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...