nowcoder 牛客練習賽9 B
題目描述
珂朵莉給你一個有根樹,求有多少個子樹滿足其內部節點編號在值域上連續
一些數在值域上連續的意思即其在值域上構成一個連續的區間
輸入描述:
第一行有一個整數n,表示樹的節點數。 接下來n–1行,每行兩個整數x,y,表示存在一條從x到y的有向邊。 輸入保證是一棵有根樹。
輸出描述:
輸出一個數表示答案
示例1
輸入
5 2 3 2 1 2 4 4 5
輸出
5
說明
節點1子樹中編號為1,值域連續 節點3子樹中編號為3,值域連續 節點5子樹中編號為5,值域連續 節點4子樹中編號為4,5,值域連續 節點2子樹中編號為1,2,3,4,5,值域連續
備註:
對於100%的資料,有n <=100000
找到相應節點的最大最小值 和 節點總個數 xjb 搜一下 wa 了一次 陣列開小了
#include<bits/stdc++.h>
using namespace std;
struct ac{
int mi,mx,sum;
ac(){
mi=999999;
mx=0;
sum=1;
}
}a[1000001];
int ans=0;
vector<int>q[100000];
void DFS(int x){
// cout<<"1"<<endl;
if(q[x].size()==0){
// a[x].sum=1;
a[x].mi=x;
a[x].mx=x;
ans++;
return ;
}
//cout<<q[x].size()<<endl;
for(int j=0;j<q[x].size();j++){
// cout<<q[x][j]<<endl;
DFS(q[x][j]);
a[x].sum+=a[q[x][j]].sum;
a[x].mx=max(a[x].mx,a[q[x][j]].mx);
a[x].mi=min(a[x].mi,a[q[x][j]].mi);
//cout<<a[q[x][j]].sum<<" "<<q[x][j]<<" "<<ans<<endl;
/* if(a[x].sum==a[x].mx-a[x].mi){
ans++;
//cout<<ans<<endl;
}*/
//cout<<a[q[x][j]].sum<<" "<<q[x][j]<<" "<<ans<<endl;
}
if(a[x].sum==a[x].mx-a[x].mi+1){
ans++;
//cout<<ans<<endl;
}
//cout<<a[x].mi<<" "<<a[x].mx<<" "<<a[x].sum<<endl;
}
int main(){
int n;
cin>>n;
int k=0;
for(int j=0;j<n-1;j++){
int x,y;
cin>>x>>y;
if(j==0) k=x;
q[x].push_back(y);
a[x].mi=x;
a[x].mx=x;
a[y].mi=y;
a[y].mx=y;
// cout<<q[x][0]<<endl;
}
// cout<<k<<endl;
DFS(k);
cout<<ans<<endl;
return 0;
}
相關文章
- 牛客練習賽40 B 小A與任務(貪心)
- 牛客練習賽129 A-數數
- Mysql 練習(牛客網)MySql
- 牛客小白月賽95 (賽前的練習之我是小菜雞)
- 牛客小白月賽103 A--B--C
- 牛客SQL練習第21題SQL
- 牛客周賽 Round 36 (小白練習記)
- 牛客練習賽74 E CCA的期望(算概率的技巧+floyd處理)
- 2024牛客暑期多校訓練營9
- 牛客小白月賽97
- 牛客小白月賽88
- 牛客小白月賽89
- 牛客小白月賽94
- 牛客小白月賽98 A~D
- 【牛客訓練記錄】中國地質大學(武漢)2024年新生賽(同步賽)
- 數理統計筆記[牛客專項練習]筆記
- 2024牛客暑期多校訓練營9 - VP記錄
- 牛客挑戰賽72 總結
- 牛客小白月賽100 A~E
- 牛客小白月賽99 C~E
- 牛客小白月賽104(A~D)
- 牛客小白月賽88 (小白來了)
- 牛客小白月賽101 A~E
- 牛客挑戰賽23-A.字串(尺取)字串
- 牛客小白月賽88-DE題解
- 牛客小白月賽88 出題覆盤
- 【牛客訓練記錄】2024牛客國慶集訓派對day1
- 【牛客訓練記錄】2024牛客國慶集訓派對day2
- 【牛客訓練記錄】2024牛客國慶集訓派對day3
- 牛客小白月賽100 ACM中的CM題ACM
- 2024牛客暑期多校訓練營2
- 2024牛客暑期多校訓練營4
- 2024牛客暑期多校訓練營5
- 2024牛客暑期多校訓練營6
- 2024牛客暑期多校訓練營1
- 2024牛客暑期多校訓練營8
- 0二叉樹簡單 牛客NC9.二叉樹
- 牛客程式設計巔峰賽S2第11場程式設計