17089. ์ธ ์น๊ตฌ
by rlaehddnd0422
https://www.acmicpc.net/problem/17089
์ฒ์ ๋ฌธ์ ๋ฅผ ์ฝ๊ณ ๋ฌธ์ ๊ฐ ์ดํด๊ฐ ์๊ฐ๋ค. ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ์ ๋ฆฌํ์๋ฉด,
1. ์ธ ์ฌ๋์ ๊ณจ๋ผ์ผ ๋๋ค.
2. ์ธ ์ฌ๋์ ์๋ก ์น๊ตฌ ๊ด๊ณ์ฌ์ฌํจ ( ์น๊ตฌ ๊ด๊ณ๋ ์ ๋ ฅ์ ํตํด ์ฃผ์ด์ง )
3. ์ธ ์ฌ๋์ด ์น๊ตฌ๊ด๊ณ์ด๋ฉด์ ๊ฐ๊ฐ์ ์ฌ๋์ด ๊ฐ์ง ์น๊ตฌ ์์ ํฉ์ ์ต์๊ฐ์ ๊ตฌํด์ผ ํจ.
์๋ฅผ๋ค์ด, A, B, C๊ฐ ์๋ก ์น๊ตฌ๊ด๊ณ์ผ๋, A์ ์น๊ตฌ์ + B์ ์น๊ตฌ์ + C์ ์น๊ตฌ์์ ์ต์๊ฐ์ ๊ตฌํ๋ผ๋ ๋ป
๋ง์ฝ ์ธ ์ฌ๋์ด ์๋ก ์น๊ตฌ๊ด๊ณ์ธ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด -1์ ์ถ๋ ฅ..
์ต๋ ์ฌ๋์ ์๋ 4000๋ช ์ธ๋ฐ 4000๋ช ์ค์ 3๋ช ์ ๊ณ ๋ฅด๋ ๊ฒฝ์ฐ๋ 4000 C 3 ~= 4000^3 = 64,000,000,000...
๋ชจ๋ ์ฌ๋์ ์กฐ์ฌํ๋ ๋ฐฉ๋ฒ์ 3์ค for๋ฌธ์ ์ฌ์ฉํด์ ์กฐ์ฌ๋ฅผ ํ๋ ๋น์ฐํ ์๊ฐ์ด๊ณผ๊ฐ ๋๊ฒ ์ง?????
๋ฐ๋ผ์ ๋ฐฉ๋ฒ์ ์กฐ๊ธ ์ฐํํด์ผ ํ๋ค.
๊ณ ๋ฅธ ๋๋ช ์ ์ฌ๋์ด ์น๊ตฌ ๊ด๊ณ์ผ ๋๋ง, ๋๋จธ์ง ํ๋ช ์ ์กฐ์ฌํด ์ธ ์ฌ๋์ด ์๋ก ์น๊ตฌ๊ด๊ณ์ธ์ง ํ์ธํ๋ฉด 2๋ฒ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ฉด์ 2๋ฒ ์กฐ๊ฑด์ ๋ง์กฑ ์ํฌ ์ ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ต๋ O(N^2 + NM) ์ผ๋ก ์ค์ผ ์ ์๋ค.
์์ค์ฝ๋
#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
#define FASTio ios_base :: sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL)
#define endl '\n'
using namespace std;
int n,m;
int a[4001][4001];
vector<int> d(4001);
int f1,f2;
int ans = -1;
int main()
{
FASTio;
cin >> n >> m;
for(int i=0;i<m;i++)
{
cin >> f1 >> f2;
a[f1][f2] = 1;
// ์น๊ตฌ๊ด๊ณ ์ค๋ฆ์ฐจ์ ์
๋ ฅ์ด๋ผ๋ ์กฐ๊ฑด์ด ์์ผ๋ฏ๋ก ๋ด๋ฆผ์ฐจ์์
๋ ฅ์ธ ๊ฒฝ์ฐ
a[f2][f1] = 1;
d[f1] +=1; // f1์ ์น๊ตฌ์ 1์ฆ๊ฐ
d[f2] +=1; // f2์ ์น๊ตฌ์ 1์ฆ๊ฐ
}
// A,B๊ฐ ์น๊ตฌ์ผ ๊ฒฝ์ฐ์๋ง C๋ฅผ ๊ตฌํ๋ค -> O(n*n + mn)
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
// i์ j๊ฐ ์น๊ตฌ๋ผ๋ฉด
if(a[i][j]==1)
{
for(int k=j+1;k<=n;k++)
{
// i์ k๊ฐ ์น๊ตฌ์ด๊ณ j์ k๋ ์น๊ตฌ์ธ ์ฆ ์ธ์น๊ตฌ๊ฐ ๋ชจ๋ ์๋ก ์น๊ตฌ์ธ๊ฒฝ์ฐ
if(a[i][k]==1 && a[j][k]==1)
{
int sum = d[i] + d[k] + d[j] - 6;
if(ans==-1 || ans>sum)
ans = sum;
}
}
}
}
}
// // O(n*n*n) -> ์๊ฐ์ด๊ณผ
// for(int i=1;i<=n;i++)
// {
// for(int j=i+1;j<=n;j++)
// {
// for(int k=j+1;k<=n;k++)
// {
// if(a[i][k]==1 && a[j][k]==1 && a[i][j]==1)
// {
// int sum = d[i] + d[k] + d[j] - 6;
// if(ans==-1 || ans>sum)
// ans = sum;
// }
// }
// }
// }
cout << ans;
return 0;
}
'๐ CS > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
5014. ์คํํธ๋งํฌ (0) | 2023.01.28 |
---|---|
3187. ์์น๊ธฐ ๊ฟ (0) | 2023.01.27 |
15686. ์นํจ ๋ฐฐ๋ฌ (0) | 2023.01.23 |
17088. ๋ฑ์ฐจ์์ด ๋ฐํ (0) | 2023.01.23 |
16968 / ์ฐจ๋ ๋ฒํธํ 1 (0) | 2023.01.20 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
Study Repository
rlaehddnd0422