DynamicProgramming 1 03ブリッジ(1010)
4551 ワード
DynamicProgramming 1 03ブリッジ(1010)
質問する
元で都市の市長になった.この町には町を東と西に分ける大きな直線形の川が流れている.しかし元知では橋がないため、市民たちが川を渡るのに大きな不便があったため、橋を建てることにした.川沿いに橋を建てるのに適した場所をウェブサイトと言います.元で江辺をよく調べたところ、江西にはNのサイトがあり、東にはMのサイトがあることが分かった.(N ≤ M)
元は西のサイトと東のサイトを橋につなぎたいと思っています.(1つのサイトには最大1つのブリッジしか接続できません.)元ではできるだけ多くの橋を建てたいので、西のサイト数に応じて(N個)橋を建てたいです.足が重ならないと言ったら、橋を建てることができれば、足の数を計算することができます.
入力
入力された第1行は、試験例の個数Tを与える.次の行から、各テストケースについて、川の西と東に位置するサイトの個数整数N,M(0しゅつりょく
各試験例について、所与の条件下でブリッジを構築できる数を出力する.
に答える
の組み合わせの問題のようです.(m)!//(n)! * (m-n)! コード#コード#
import sys
sys.stdin=open("input.txt","rt")
def input():
return sys.stdin.readline().rstrip()
# 조합 문제인것 같다. (m)! // (n)! * (m-n)!
def factorial(x):
tmp = 1
for i in range(1,x+1):
tmp *= i
return tmp
Re = int(input())
res = 0
for _ in range(Re):
N, M = map(int,input().split())
res = factorial(M) // (factorial(N) * factorial(M-N))
print(res)
学識
コメント
mathモジュールをインポートし、factorial実装を必要とせずに使用できます.!import math
math.factorial(x)
Reference
この問題について(DynamicProgramming 1 03ブリッジ(1010)), 我々は、より多くの情報をここで見つけました
https://velog.io/@angel_eugnen/DynamicProgramming103다리놓기1010
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
しゅつりょく
各試験例について、所与の条件下でブリッジを構築できる数を出力する.
に答える
コード#コード#
import sys
sys.stdin=open("input.txt","rt")
def input():
return sys.stdin.readline().rstrip()
# 조합 문제인것 같다. (m)! // (n)! * (m-n)!
def factorial(x):
tmp = 1
for i in range(1,x+1):
tmp *= i
return tmp
Re = int(input())
res = 0
for _ in range(Re):
N, M = map(int,input().split())
res = factorial(M) // (factorial(N) * factorial(M-N))
print(res)
学識
コメント
mathモジュールをインポートし、factorial実装を必要とせずに使用できます.!
import math
math.factorial(x)
Reference
この問題について(DynamicProgramming 1 03ブリッジ(1010)), 我々は、より多くの情報をここで見つけました https://velog.io/@angel_eugnen/DynamicProgramming103다리놓기1010テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol