【題目背景】
從前有一款非常火的遊戲被人們稱為pokemon,從最初的紅綠藍黃版直到現在的xy版,都受到世界各地小朋友和大朋友們的喜愛。
【題意描述】
作為一名高玩,qq最近在研究pokemon的覺醒力量。
覺醒力量是乙個屬性和威力都不確定的神奇技能,它基於pokemon的個體值進行一系列複雜的計算,最後得出屬性和威力。由於屬性可以擴充打擊面,而威力則保證了打擊力度,這使得覺醒力量成為乙個不可或缺的技能。乙隻滿威力覺醒冰的電龍可以擊敗草系或地面系的對手,然而在沒有覺醒力量的情況下這幾乎不可能。
由於不同的怪需要不同屬性的覺醒力量,而每種覺醒力量的最大威力又有差別,所以獲取覺醒力量的計算公式就顯得尤為重要。經過蒐集資料,qq了解了計算公式的以下幾個性質:
1、計算公式由恰好n個步驟組成,每個步驟由運算型別和引數組成。
2、運算型別包括加法,減法,乘法和乘方。
3、運算不考慮優先順序,輸入總是運算的第一引數,而結果代入下一運算步驟。
比如,共計4個運算步驟:+1,*4,-9,^7(這裡的^是乘方,不是異或)
如果代入的資料是2,計算過程是:2+1=3,3*4=12,12-9=3,3^7=2187
如果代入的資料是1,計算過程則為:1+1=2,2*4=8,8-9=-1,(-1)^7=-1
覺醒力量的屬性決定於最終答案對17的模(若為負數取正模),得數為0~16時分別對應的屬性為:
0:fight 1:flying 2:poison 3:ground 4:rock
5:bug 6:ghost 7:steel 8:fire 9:water
10:grass 11:electric 12:psychic 13:ice 14:dragon
15:dark 16:fairy
而覺醒力量的威力決定於最終答案對46189的模。(提示,46189^2=2133423721)
所以上述兩種情況分別是威力2187的覺醒電和威力46188的覺醒妖(滿威力覺醒妖)。
現在,qq需要通過不斷的實踐來修正這個計算公式。qq有乙個初始預估的計算公式,每次他會使用公式計算覺醒力量的屬性和威力,和實際情況比對,進而修正公式或繼續計算。然而,代入如此長的乙個公式對於他而言有些吃力,所以他希望你來幫他完成這件事情。
第一行,兩個數n,m,表示步驟數和運算元。
接下來一行,描述n個步驟,每個步驟由乙個運算子和乙個引數構成。步驟之間由乙個或多個空格分隔。
接下來m行,描述m個操作,有以下兩種格式
1 x 其中x是乙個整數,表示將x代入公式計算
2 x p 其中x是乙個整數,p是乙個步驟(格式同上),表示將第x個步驟替換為p
對於每個1型別操作,輸出一行,表示覺醒力量的屬性和威力,空格分隔。
4 5
+1 *4 -9 ^7
1 21 1
2 1 -4
1 21 1
electric 2187
fairy 46188
fight 4403
rock 5325
【資料規模和約定】
對於10%的資料,n,m<=5000
另有20%的資料,沒有2類操作
對於80%的資料,n,m<=30000
奇數編號測試點沒有^操作。
對於100%的資料,n,m<=100000,2操作中1<=x<=n,運算中運算子為+-*^之一,所有其他整數均小於2^31。
solution
先考慮第一問
輸入乙個數,輸出經過運算後%17的結果,支援修改運算子
用線段樹維護,另ans[i]表示把i放入(l,r)的結果,i為0~16
tree[k].ans[i]=tree[k*2+1].ans[tree[k*2].ans[i]];
這樣就可以了
第二問可以發現
46189=11*13*17*19
通過構造同餘方程可用crt解出
然而我寫了暴力。。
#include#include#include#include#include#include#define maxn 100005
using namespace std;
int n,m,mod[4]=,t1,t2;
struct nodes[maxn];
char ch[20];
struct notree[maxn*4];
const char sh[17][10]=;
int val(int k,node a,int mod)
}ans=(ans%mod+mod)%mod;
return (int)ans;
}void wh(int k)
}void build(int k,int l,int r)
return;
}int mid=l+r>>1;
build(k*2,l,mid);build(k*2+1,mid+1,r);
wh(k);
}void outp(int k)
for(int i=ans[3];i<=46188;i+=19)
}if(!fl)
}}node get()
int main()
else
}return 0;
}
財富的覺醒
為什麼美國在實體經濟嚴重衰退的情況下,要把9000億美元全部砸向金融領域?為什麼中國在 跌幅超過70 的情況下,卻要向實體經濟增加4萬億人民幣的投資?為什麼憑藉幾種金融衍生品,財富就能瞬間轉移?為什麼憑藉某個政策,國與國之間的財富就能此消彼長?為什麼昨日還爭相競價的東西,今天就變得一文不值?是財富變...
覺醒 閉包 this
兩條非常重要的知識點 首先上題 var a 322 var preview function preview 123 window 322 每個函式在被呼叫的時候 1.自動獲取兩個特殊變數 arguments類陣列物件 和this物件。內部函式在搜尋這兩個變數的時候,只會搜尋到其變數物件為止。不會訪...
小說 魔王冢 10 覺醒
8月 24日。晨,多雲。洗漱完畢的李翊軒手裡拿著乙個麵包大嚼著,懶散地靠在椅子上看著微博裡的新聞。由於微博的自 特性,所以及時性遠遠優於傳統的新聞 正是由於這個原因,自從微博誕生之後,李翊軒便很少再從門戶 獲取時事資訊了。突然,一條 達數萬次的微博吸引了他的注意力 草根通訊社 知春裡 案!昨晚 21...