[백준] 1010번 다리 놓기 / C++

#문제

백준 1010번 다리 놓기

#풀이

#include <iostream>
#include <vector>

using namespace std;

vector<pair<int, int>> sight;

int main()
{
	ios::sync_with_stdio(false); cin.tie(NULL);

	int T;
	cin >> T;

	for (int i = 0; i < T; ++i)
	{
		int N, M;
		cin >> N >> M;

		sight.push_back(make_pair(N, M));
	}

	for (int i = 0; i < T; ++i)
	{
		long long result = 1;
		int r = 1;

		for (int j = sight[i].second; j > (sight[i].second - sight[i].first); --j)
		{
			result = result * j;
			result = result / r;
			r++;
		}

		cout << result << '\n';
	}

	return 0;
}

#정리

이항정리 문제는 combination으로 접근한다. nCr(ex. 5C3 = 543 / 321)




    Enjoy Reading This Article?

    Here are some more articles you might like to read next:

  • [백준] 9613번 GCD 합 / C++
  • [백준] 1934번 최소공배수 / C++
  • [백준] 1037번 최소공배수 / C++
  • [백준] 11651번 좌표 정렬하기 2 / C++
  • [백준] 11650번 좌표 정렬하기 / C++