結果

問題 No.329 全射
ユーザー tailstails
提出日時 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

ソースコード

diff #

$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;
0