結果
| 問題 |
No.8112 区間和係数多項式?
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-03-04 15:40:57 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,414 bytes |
| コンパイル時間 | 391 ms |
| コンパイル使用メモリ | 81,860 KB |
| 実行使用メモリ | 352,956 KB |
| 最終ジャッジ日時 | 2024-09-29 17:22:29 |
| 合計ジャッジ時間 | 9,827 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 16 TLE * 1 -- * 12 |
ソースコード
class fenwick_tree():
n=1
data=[0 for i in range(n)]
def __init__(self,N):
self.n=N
self.data=[0 for i in range(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.sum0(r)-self.sum0(l)
def sum0(self,r):
s=0
while(r>0):
s+=self.data[r-1]
r-=r&-r
return s
n, b, q = map(int, input().split())
c1, d1 = map(int, input().split())
c2, d2 = map(int, input().split())
c3, d3 = map(int, input().split())
c4, d4 = map(int, input().split())
c5, d5 = map(int, input().split())
a = [c1]
for i in range(n - 1):
a.append(a[-1] * d1 % b)
A = fenwick_tree(n)
for i in range(n):
A.add(i, a[i])
def p(x):
# the number of trailing zeros
#x: int
X = x
if x==0:
return 0
res=0
while(x%2==0):
x//=2
res+=1
return X - 2 ** res
P = [p(i) for i in range(n + 1)]
def f(j, y):
ans = 0
yy = 1
while j:
ans += A.sum(P[j] + 1, j + 1) * yy
ans %= b
j = P[j]
yy *= y
yy %= b
ans += yy * a[0]
return ans % b
i, j, x, y = c2 % n, c3 % n, c4 % b, c5 % b
for _ in range(q):
A.add(i, x - a[i])
a[i] = x
print(f(j, y))
i *= d2
i %= n
j *= d3
j %= n
x *= d4
x %= b
y *= d5
y %= b