結果
問題 |
No.329 全射
|
ユーザー |
![]() |
提出日時 | 2015-12-22 01:36:13 |
言語 | Perl (5.40.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 623 bytes |
コンパイル時間 | 41 ms |
コンパイル使用メモリ | 6,684 KB |
実行使用メモリ | 103,072 KB |
最終ジャッジ日時 | 2024-09-18 18:25:04 |
合計ジャッジ時間 | 3,625 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
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){ if(!$h{$s,$t}){ $h=0; for$i(1..$t){ $h+=(-1)**($t-$i)*nok($t,$i)*pow($i,$s); } $h{$s,$t}=$h; } $r=($r+$h{$s,$t})%$mod; } $s=$t if $s>$t; for(@$l){ if(!$u[$_]++){ push@a,[$_,$s]; } } } } print$r;