架橋1010
8137 ワード
https://www.acmicpc.net/problem/1010
くみあわせもんだい
N個からR個をランダムに抽出する
つまり、(1,2,3)=(1,3,2)なので、順番に抽出すれば順番が間違えることはありません.
だから組合せ式ncrで解くといいです
くみあわせもんだい
N個からR個をランダムに抽出する
つまり、(1,2,3)=(1,3,2)なので、順番に抽出すれば順番が間違えることはありません.
だから組合せ式ncrで解くといいです
import java.io.*;
import java.util.*;
public class 다리놓기_1010 {
public static void main(String[] args) throws IOException
{
/*
순서를 가지고 M개의 다리중에서 N개의 다리뽑기 - 조합
*/
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
StringBuffer sb = new StringBuffer();
for (int t = 0; t < N; t++)
{
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
//mCn
n = Math.min(m - n, n);
long up = 1;
for (int count = n; count > 0; count--)
{
up *= m;
m--;
}
long down = 1;
while (n >= 1)
{
down *= n;
n--;
}
long ret = up / down;
sb.append(ret).append("\n");
}
System.out.print(sb.toString());
}
}
Reference
この問題について(架橋1010), 我々は、より多くの情報をここで見つけました https://velog.io/@dnstlr2933/다리놓기1010テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol