ABC 057-D Maximum Average Sets
はいはい。クソ雑魚クソ雑魚
先に結論
閑話休題
Nafmoです。駄目です。
もう私eiyaプロいなかったらどうなってんだよ(
ABC 057-D問題 と戦ってきました
はーい解説しまーす
ABC 057-D Maximum Average Sets
問題概要。
- 数列がもらえる。A~Bの間の個数分だけ取って平均を最大化します。
- 平均の最大値と、そいつを作る場合の数を二行に渡って出力しよう
終わり。
解説的な何か
平均の最大化はA個とって割ればいいよね
具体例を考えれば自明ですよー数学的な説明は勘弁して。
(A=2{4,3,2,1}4 3と取ったら終わりよね。それ以上取ったら小さくなります。
また、{4,4,4,4}のときはA~Bの間の何個とってももう同じよね...)
前半終わり。
場合の数が問題。
- あ、ソートしてください。(前提)
- コンビネーション列挙*2
パスカルの三角形をゴリ押ししましょう。
【めぐるスニペット】
— 因幡めぐる@競技プログラミング (@meguru_comp) 2016年2月2日
getcsmall https://t.co/U4esiD0j2n
getcmedium https://t.co/zwIERqb9n5
getclarge https://t.co/aAMcLEo4HC pic.twitter.com/LjOcjR1ASqここに色々書いてあるよ()
- 数列の[0]~[A-1]が等しいときは、[0]==[A-1]が成り立つ。
このときはA個、A+1.....Bまで取る可能性があるので
数列にある[0]の値の数Cn個{N|A,A+1,...B}
をループで回して足しておしまい。 - それ以外のときは、必ず2種類以上A個の中にひそんでいるので、
全体にある[A-1]の値の個数C[0]~[A-1]までにある[A-1]の個数。です - この個数はどうやって求めるかというとすべての要素でループを回してカウントしてください。
- 変数の役割。
- yui:場合の数
- count:全体に[A-1]の値が何個あるか
- lo:[0]~[A-1]までに[A-1]が何個あるか
- 他にもわからなかったらコメント等で聞いてくれれば...
以上。になるのかな。