アットウィキロゴ
競技プログラミング用 知識集積所
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

競技プログラミング用 知識集積所

ABC456B - 456

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識

A問題レベルのものは省略

考え方

確率※の問題。
とはいえB問題なのでそれは上っ面だけで、「条件を満たす目の出方」「全ての目の出方」を求めて割り算すればいいだけ。

全ての目の出方は、6^3で216通りと簡単にわかる。
条件を満たす目の出方はその216通りを全探索※すればよい。

まず、それら216通りの候補を生成する。
これは各サイコロの目を長さ6のvectorに収め、それぞれを順に見ていくループを三重ループ※の形で書けばよい。
その中でそれぞれの候補が条件を満たすかチェックして、満たすならカウントを+1していけばよい。

条件を満たすか確認する方法は多数ある。
  • if分岐を気合で6パターン書く
  • 3つの出目をvectorに入れてソートし、それが{4,5,6}と一致するか見る
  • 3つの出目をset※に入れ、それが{4,5,6}と一致するか見る
  • 3つの数を掛けてみて、120になるか見る
などなど。
最も得意な方法を選べばよい。

あとはそれを216.0で割ればよい。
うっかり216で割ってint型同士の割り算にしてしまわないように。

解答例


注意点


別解

最近更新されたスレッド
ウィキ募集バナー