覺醒力量 (hidpower)

2022-08-01 20:36:10 字數 2653 閱讀 2520

【題目背景】

從前有一款非常火的遊戲被人們稱為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...