結果
| 問題 | No.1696 Nonnil |
| コンテスト | |
| ユーザー |
sasa8uyauya
|
| 提出日時 | 2025-03-08 06:34:17 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,182 bytes |
| コンパイル時間 | 429 ms |
| コンパイル使用メモリ | 82,376 KB |
| 実行使用メモリ | 266,564 KB |
| 最終ジャッジ日時 | 2025-03-08 06:35:24 |
| 合計ジャッジ時間 | 12,959 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 29 TLE * 4 -- * 6 |
ソースコード
class FenwickTree:
def __init__(self,n):
self._n=n
self.data=[0]*n
def add(self,p,x):
p+=1
while p<=self._n:
self.data[p-1]+=x
p+=p&(-p)
def sum(self,l,r):
return self._sum(r)-self._sum(l)
def _sum(self,r):
s=0
while r>0:
s+=self.data[r-1]
r-=r&(-r)
return s
n,k=map(int,input().split())
m=int(input())
X=k
p=[X]*k
for _ in range(m):
l,r=map(int,input().split())
l-=1
r-=1
p[l]=min(p[l],r)
for i in range(k):
for j in range(i+1,k):
if i!=j and p[i]<X and p[j]<X and p[i]>=p[j]:
p[i]=X
p=[(i,p[i]) for i in range(k) if p[i]<X]
m=len(p)
M=998244353
q=[[FenwickTree(k) for j in range(2)] for i in range(k+1)]
for i in range(m):
l,r=p[i]
q[r-l+1][1].add(r,1)
for j in range(k+1):
if j+(r-l+1)<=k:
q[j+(r-l+1)][0].add(r,q[j][1].sum(0,l))
q[j+(r-l+1)][1].add(r,q[j][0].sum(0,l))
for j in range(k+1):
for rr in range(l,r):
if j+(r-rr)<=k:
q[j+(r-rr)][0].add(r,q[j][1].sum(rr,rr+1))
q[j+(r-rr)][1].add(r,q[j][0].sum(rr,rr+1))
a=pow(k,n,M)
for i in range(k+1):
a-=pow(k-i,n,M)*q[i][1].sum(0,k)
a+=pow(k-i,n,M)*q[i][0].sum(0,k)
a%=M
print(a)
sasa8uyauya