【CF1188A1】Add On A tree
題目大意
給你棵樹,允許在兩個葉節點的路徑上的邊權上增加任何實數(初始值為0),問是否存在有限次操作,使每條邊權可以為任何值。
分析
對於上圖,我們發現無論如何1-3和2-7兩條邊的權值無論如何都是相等的,所以不行。通過模擬,我們發現如果有一個節點連兩條邊,就不符合情況,規律簡單模擬一下即可。給出簡略證明。
如果一個節點有兩條邊,肯定不是葉子節點,向下可以找到至少一個葉子節點,形成集合U如圖中7,向上可以找到其他的葉節點如4,5,6形成集合V。U,V交集為空。任意U中的的葉節點到V都只能經過剛剛找到的節點相連的兩條邊,所以這兩條邊邊權相等。
題目連結
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 2e5 + 10;
int rud[N], n;
int main() {
ios::sync_with_stdio(false);
cin.tie(), cout.tie();
cin >> n;
for (int i = 0, x, y; i < n - 1; ++i) {
cin >> x >> y;
++rud[x], ++rud[y];
}
bool flag = true;
for (int i = 1; i <= n; ++i) {
if (rud[i] == 2){
flag = false;
break;
}
}
if (flag)
cout << "YES" << endl;
else
cout << "NO" << endl;
return 0;
}
相關文章
- 623-Add One Row to Tree
- git add all和git add .區別Git
- 4.5.1 add
- DataTransferItemList.add()
- 2.3 ADD CREDENTIALSTORE
- 2.2 ADD CHECKPOINTTABLE
- git add errorGitError
- JavaScript select add()JavaScript
- tree
- ArrayList宣告,Add(), Insert();
- 7.11 ADD_MONTHS
- IDBObjectStore.add() 方法Object
- Add Cmder Terminal to PHPStormPHPORM
- 4.5.1.2 srvctl add databaseDatabase
- 4.5.1.3 srvctl add listener
- 4.5.1.4 srvctl add ons
- 4.5.1.1 srvctl add asmASM
- Add Strings 字串相加字串
- Leetcode 67 Add BinaryLeetCode
- 撤銷git addGit
- Dockerfile:ADD VS COPYDocker
- LinkedList原始碼(add方法)原始碼
- Add Digits 各位相加Git
- Exchange - Add Owner of Distribution Group
- [LeetCode] 258. Add DigitsLeetCodeGit
- LeetCode 2 Add Two NumbersLeetCode
- git add命令詳解Git
- DSU on Tree
- Rebuild TreeRebuild
- 01 Tree
- Tree Compass
- A - Distance in Tree
- Decision Tree
- 【TensorFlow基礎】tf.add 和 tf.nn.bias_add 的區別
- 【MySQL(1)| B-tree和B+tree】MySql
- 多路查詢樹:B-tree/b+tree
- LeetCode#110.Balanced Binary Tree(Tree/Height/DFS/Recursion)LeetCode
- [反悔貪心] Add One 2