競プロ日和

競技プログラミングを楽しむ

yukicoder

No787

問題 分かりやすいように、AとBを設定。 A:裏切り者でないのに裏切り者だと判定 B:裏切り者に対し、裏切り者と判定 とすると、計算式は以下のようになる。 P, Q = map(float, input().split()) print(P * Q * 100 / (P * Q + (100 - P) * (100 - Q)))

No786

問題 フィボナッチ数列 n = int(input()) ans = [1, 1] + [0] * 100 for i in range(2, n + 1): ans[i] = ans[i - 2] + ans[i - 1] print(ans[n])

No785

問題 分かりやすいように変数を定義 R:赤が表示できる文字数 G:緑が表示できる文字数 B:青が表示できる文字数 上記より、カラーコードのイメージは #RRGGBB のようになるので、 「R * R * G * G * B * B」 を出力すればいい。 ans = 1 for s in (input() …

No784

問題 3桁ごとに「,(カンマ)」をつけるだけ print(f"{int(input()):,}")

みんなのプロコン 2019 A

問題 仮にk個選べるとすると、必要なnの数は(k * 2 - 1)個。 nがそれ以上ならばYES。 そうでなければNO。 n, k = map(int, input().split()) print("YES" if k * 2 - 1 <= n else "NO")

AtCoder Educational DP Contest / DP まとめコンテスト D - Knapsack 1

dp_d 動的計画法 通常のナップサック問題。 重さが 105 なので、O(NW)では 107。 pythonでは間に合わなかったため、c++で提出した。 一応、pythonコード c++コード

yukicoder No747

No747 途中までc++で書いていたが、よくわからなくなったため、pythonで書き直してAC。 ※コンテスト終了後に見直してみると、"285714"を"428571"にしたら通った。 まずはNを6で割った余りを求めて、それのk乗を求める。 Nの剰余 今回のように64bit整数で扱え…

yukicoder No746

No746 Nが'0'かそれ以外のパターンの場合分け。 Nが0の場合 "0"を出力 それ以外 Nの個数分"142857142857・・・"を出力

yukicoder No745

No745 まず、’D’が’0’の場合はライフが0となり、失敗なので、"Impossible"を出力する。 実際に得点に絡むのはperfectとgreatだが、greatから始めてコンボを継続すれば、より高得点なので、 ①great ②perfect の順で考える。 goodは考えない。

yukicoder No744

No744 ”285714”が循環する。 ただし、要素を0から始めるので、"428571"にする。