結果
問題 | No.329 全射 |
ユーザー |
![]() |
提出日時 | 2015-12-22 01:21:16 |
言語 | Perl (5.40.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 555 bytes |
コンパイル時間 | 52 ms |
コンパイル使用メモリ | 6,940 KB |
実行使用メモリ | 102,912 KB |
最終ジャッジ日時 | 2024-09-18 18:24:49 |
合計ジャッジ時間 | 3,609 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 10 TLE * 1 -- * 29 |
コンパイルメッセージ
Main.pl syntax OK
ソースコード
$mod=1e9+7; sub nok{ my($n,$k)=@_; $nok{$n,$k}//=$k==0||$k==$n?1:(nok($n-1,$k)+nok($n-1,$k-1))%$mod; } sub pow{ my($n,$e)=@_; $pow{$n,$e}//=$e==0?1:($e&1?$n:1)*pow($n*$n,$e>>1)%$mod; } sub i{<>=~/\d+/g} ($n,$m)=i; @w=(0,i); for(1..$m){ ($i,$j)=i; push@$i,$j; } for$k(1..$n){ @u=();$u[$k]++; @a=[$k,$w[$k]]; while(@a){ ($l,$s)=@{pop@a}; $t=$w[$l]; if($s>=$t){ for$i(1..$t){ $r+=(-1)**($t-$i)*nok($t,$i)*pow($i,$s); $r%=$mod; } } $s=$t if $s>$t; for(@$l){ if(!$u[$_]++){ push@a,[$_,$s]; } } } } print$r;