Notice
Recent Posts
Recent Comments
Link
Tags
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ๋ฐฑ์ค
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- LCs
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ์น๋ฆฐ์ด
- DP
- ๋นํธ๋ง์คํน
- go
- ๋ค์ต์คํธ๋ผ
- C++
- golang
- DFS
- js
- ๋นํธ๋งต
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- ์์ฝ๋
- Union-Find
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- nestjs
- BFS
- ์นด์นด์ค2021
- ์ด๋ถํ์
- ์ฌ๊ท
- Python
- ์นด์นด์ค ์ฝํ
- ํธ๋ฆฌ
- ์ํฐ๋
Archives
- Today
- Total
Hello Ocean! ๐ผ
[๋ฐฑ์ค/C++] 19535. ใทใทใทใ ๋ณธ๋ฌธ
๋ฐ์ํ
๋ฌธ์
https://www.acmicpc.net/problem/19535
ํ์ด
ใท ํธ๋ฆฌ : (n๊ณผ ์ฐ๊ฒฐ๋ ๋ ธ๋(a ์ ์ธ)) - (n) - (n๊ณผ ์ฐ๊ฒฐ๋ ๋ ธ๋(a)) - (a์ ์ฐ๊ฒฐ๋ ๋ ธ๋(n ์ ์ธ))
๋ฐ๋ผ์ ๊ฒฝ์ฐ์ ์๋ ๋ชจ๋ ๋ ธ๋(n)์ ๋ํด์,
n๊ณผ ์ฐ๊ฒฐ๋ ๋ ธ๋๊ฐ x๊ฐ๋ผ๊ณ ํ๊ณ ,
n๊ณผ ์ฐ๊ฒฐ๋ ์ด๋ค ๋ ธ๋ a์ ์ฐ๊ฒฐ๋ ๋ ธ๋๊ฐ y๊ฐ๋ผ๊ณ ํ๋ฉด,
(x-1) * (y-1) ์ ํฉ์ผ๋ก ๊ตฌํ ์ ์๋ค.
* ์ค๋ณต์ ๋ง๊ธฐ ์ํด, n์ด a๋ณด๋ค ๋ ธ๋๋ฒํธ๊ฐ ํฐ ๊ฒฝ์ฐ๋ง ์
ใ ํธ๋ฆฌ : (n) - (n๊ณผ ์ฐ๊ฒฐ๋ ๋ ธ๋ 3๊ฐ)
๋ฐ๋ผ์ ๊ฒฝ์ฐ์ ์๋,
์ฐ๊ฒฐ๋ ๋ ธ๋์ ๊ฐ์ a๊ฐ 3 ์ด์์ธ ๋ ธ๋ n์ ๋ํด์ aC3 ์ ์ด ํฉ์ ๊ตฌํ๋ฉด ๋๋ค.
์ฝ๋
#include <iostream>
#include <vector>
using namespace std;
int N;
vector<int> tree[300003];
long long count_d = 0;
long long count_g = 0;
void find_g() {
// ์์์ด 3๊ฐ ์ด์์ธ ๋
ธ๋์์, ์์์๊ฐ a๋ผ๊ณ ํ์ ๋, aC3 ๊ฐ์ ์ธ๊ธฐ
for (int n = 1;n <= N;n++) {
int cnt = tree[n].size(); // ์์ ๊ฐ์
if (cnt >=3)
count_g += (cnt*(cnt - 1)*(cnt - 2)) / 6;
}
}
// n์ ์์or๋ถ๋ชจ - n - tree[n][i] - tree[n][i]์ ์์or๋ถ๋ชจ
// n์ ์์or๋ถ๋ชจ์์ tree[n][i]๋ ๋นผ์ค์ผ ํ๋ฏ๋ก -1 (1)
// tree[n][i]์ ์์or๋ถ๋ชจ์์ n์ ๋นผ์ค์ผ ํ๋ฏ๋ก -1 (2)
// ๊ฒฝ์ฐ์์ ๊ณ์ฐ : (1)*(2)
void find_d() {
for (int n = 1;n <= N;n++) {
if (tree[n].size() < 2) continue;
for (int i = 0;i < tree[n].size();i++) {
if (tree[n][i] < n) continue;
if (tree[tree[n][i]].size() < 2) continue;
count_d += ((tree[n].size()-1)*(tree[tree[n][i]].size()-1));
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> N;
for (int i = 1;i < N;i++) { // ๊ฐ์ N-1๊ฐ ์
๋ ฅ๋ฐ๊ธฐ
int u, v;
cin >> u >> v;
tree[u].push_back(v);
tree[v].push_back(u);
}
find_d();
find_g();
//cout << count_d << " " << count_g << endl;
if (count_d > count_g * 3) cout << "D";
else if (count_d == count_g * 3) cout << "DUDUDUNGA";
else cout << "G";
return 0;
}
๊ฒฐ๊ณผ
๋ฐ์ํ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 12888. ์์ ์ด์ง ํธ๋ฆฌ ๋๋ก ๋คํธ์ํฌ (0) | 2021.07.20 |
---|---|
[๋ฐฑ์ค/C++] 10838. ํธ๋ฆฌ (0) | 2021.07.20 |
[๋ฐฑ์ค/C++] 3584. ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต์กฐ์ (0) | 2021.07.06 |
[๋ฐฑ์ค/C++] 5052. ์ ํ๋ฒํธ ๋ชฉ๋ก (0) | 2021.07.06 |
[๋ฐฑ์ค/C++] 1967. ํธ๋ฆฌ์ ์ง๋ฆ (0) | 2021.06.29 |