0

ABC215-G 解いてみた

163
0

 組み合わせ問題を多項式の問題に解釈して解くのが好きなので、今回AtCoderBeginnerContest215のG問題を多項式の問題に解釈してみようと思います。(数学の記事のつもりなのでプログラムの実装に関する部分は省略して考察だけしていこうと思います。)

Colorful Candies

( https://atcoder.jp/contests/abc215/tasks/abc215_g )
 N個のキャンディーが左右一列に並んでいます。
 i=1,2,,Nについて、左からi番目のキャンディーの色はciです。
 高橋君は並んでいるN個のキャンディーのうちK個を選び、選んだK個のキャンディーをすべてもらいます。
 ここで、N個のキャンディーからK個を選ぶ組み合わせの個数は(NK)個ありますが、高橋君は(NK)通りの選び方のうちいずれか一つを等確率でランダムに選びます。
 高橋君がもらうキャンディーに含まれる種類数の期待値を求めてください。

 種類数の期待値は種類数の総和を選び方の総数(NK)で割ると求まります。種類数の総和を求めていこうと思います。
 [ymxn]f(x,y)=「N個の中からn個選んだ時色の種類数がm種類になる選び方の総数」となるような多項式を考えていきます。N個の中に色iのキャンディーがai個あるとします。結論だけ先に言うと、f(x,y)は以下のようになります。
 f(x,y)=i(1+y((1+x)ai1))
 例えば,N=6個の中に赤、青、黄がそれぞれ1,2,3個あるとすると,f(x,y)=(1+yx)(1+2yx+yx2)(1+3yx+3yx2+yx3)です。
 色iごとにai個あるうち何個選ぶかを独立に決めてきます。上の例で,黄色キャンディ3個のうち0,1,2,3個選ぶとするとそれぞれ選び方は1,3,3,1通りであり、種類数(yの指数)への寄与は0,1,1,1であり,個数(xの指数)の寄与はそれぞれ0,1,2,3であるので,(1+3yx+3yx2+yx3)という多項式が思いつきます。すべての色について同様に多項式を考え、積をとるとf(x,y)となります。
 あとはここから選ぶ個数(xの指数)を固定したときの種類数(yの指数)の総和を求めていきます。yについて微分すると、yの指数が係数としておりてくるので、求めたいのは[xK]fy(x,1)です。
fy(x,y)=yi(1+y((1+x)ai1))=i(y(1+y((1+x)ai1))×ji(1+y((1+x)aj1)))=i(((1+x)ai1)×ji(1+y((1+x)aj1)))
よって、種類数の総和は
[xK]fy(x,1)=i[xK](((1+x)ai1)×ji(1+x)aj)=i([xK](1+x)N[xK](1+x)Nai)=i{(NK)(NaiK)}
となります。    

投稿日:202379
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

MARTH
MARTH
36
4880
OMC黄

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中