1. 程式人生 > >華農oj 2192: hzk又在打人【CRT合並/待補】

華農oj 2192: hzk又在打人【CRT合並/待補】

bmi 列操作 輸入 TP code IT 真的 意義 input

2192: hzk又在打人
Time Limit: 12 Sec  Memory Limit: 512 MB
Submit: 52  Solved: 1
[Submit][Status][Web Board]
Description



hzk又要打人了,他讓我們做一個cpu能夠計算一些簡單的指令,首先他有n條指令,指令形如”c x”,其中c ={+,^,*},x是一個非負整數.

+ a , * a , ^ a分別代表加,乘,乘方.假設我們現在有+ 2 , * 3, ^ 2 三個指令那麽對於輸入的x,我們得到輸出 ((x+2)*3)^2 , 比如x=2的時候,那麽輸出結果為144.

現在hzk要求cpu有2種操作

1、1 x 表示輸入一個非負整數x,然後輸出相應的結果 ,因為結果可能會很大所以我們找一個吉利數字取模比如 17017

 

2、2 p c x  表示對於把第p個指令改成c x ; c是運算符{^,+,*},x是一個非負整數.

現在hzk要我們做一個這樣的cpu,可是我們真的做不出來了,你能幫幫我們嗎?




Input
第一行一個數字 T 代表總共有T組測試,(T<=5)

接下來每一組測試第一行有兩個數字 n,m表示n條指令,m次操作.(1<=n,m<=10^5)

接下來n行,每行是一條指令形如 “c x”,意義如上所述。(0<=x<17017)

接下來m行,表示m次操作,操作形如”1 x”或者”2 p c x”。(0<=x<17017 , 1<=p<=n)



Output
對於每組測試的操作1,輸出對應的答案(mod 17017)。每個數字一行


Sample Input
2

3 2
+ 3
* 3
^ 2
2 1 + 2
1 2

2 2
^ 2
+ 4
1 2
1 3
Sample Output
144
8
13
HDU 5238 Calculator(中國剩余定理+線段樹)
17017=7*11*13*17
對每個質因子用線段樹維護一個表
表示輸入經過一系列操作會得到啥
CRT合並

華農oj 2192: hzk又在打人【CRT合並/待補】