結果
| 問題 |
No.1815 K色問題
|
| ユーザー |
hotman78
|
| 提出日時 | 2022-09-18 09:24:24 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,199 bytes |
| コンパイル時間 | 279 ms |
| コンパイル使用メモリ | 12,928 KB |
| 実行使用メモリ | 33,056 KB |
| 最終ジャッジ日時 | 2024-09-29 22:46:47 |
| 合計ジャッジ時間 | 3,989 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 WA * 1 |
| other | AC * 2 WA * 1 TLE * 1 -- * 9 |
ソースコード
# okkuuさんのやつの書き換え
def main():
mod=int(1e9+7)
fact=[0]*200001
invfact=[0]*200001
n,m,k=map(int,input().split())
fact[0]=1
for i in range(1,k+1):
fact[i]=fact[i-1]*i%mod
for i in range(k+1):
a=fact[i]
mm=mod-2
b=1
while mm:
if mm&1:
b=(b*a)%mod
a=(a*a)%mod
mm>>=1
invfact[i]=b
ans=0
for i in range(1,k+1):
tmp=0
if n==1:
a=i-1
x=i
mm=m-1
b=1
while mm:
if mm&1:
b=(b*a)%mod
a=(a*a)%mod
mm>>=1
tmp=(b*x)%mod
if n==2:
a=(i*i-3*i+3)%mod
x=(i*i-i)%mod
mm=m-1
b=1
while mm:
if mm&1:
b=(b*a)%mod
a=(a*a)%mod
mm>>=1
tmp=(b*x)%mod
if n==3:
a00=(-13+i*14-i*i*6+i*i*i)%mod
a01=(-10+i*13-i*i*6-i*i*i)%mod
a10=(5-i*4+i*i)%mod
a11=(3-i*3+i*i)%mod
x=(i*2-i*i*3+i*i*i)%mod
y=(-i+i*i)%mod
mm=m-1
b00=1
b01=0
b10=0
b11=1
while mm:
if mm&1:
bb00=(b00*a00+b01*a10)%mod
bb01=(b00*a01+b01*a11)%mod
bb10=(b10*a00+b11*a10)%mod
bb11=(b10*a01+b11*a11)%mod
b00=bb00
b01=bb01
b10=bb10
b11=bb11
aa00=(a00*a00+a01*a10)%mod
aa01=(a00*a01+a01*a11)%mod
aa10=(a10*a00+a11*a10)%mod
aa11=(a10*a01+a11*a11)%mod
a00=aa00
a01=aa01
a10=aa10
a11=aa11
mm>>=1
tmp=(b00*x+b01*y+b10*x+b11*y)%mod
tmp*=fact[k]*invfact[i]%mod*invfact[k-i]%mod
tmp%=mod
if(k-i)&1:
tmp=(-tmp+mod)%mod
ans+=tmp
ans%=mod
print(ans)
if __name__ == '__main__':
main()
hotman78