第5次模擬測試T4題解

2021-08-21 17:50:00 字數 1610 閱讀 2580

hl啊~你的23日遊終於結束了~

由於本人實在太懶,才寫了一篇題解

t4.數字遊戲

[問題描述]

hl中學茶餘飯後喜歡玩遊戲,乙個遊戲規則如下: 共兩人參加遊戲,若第乙個人當前手中的數為w1,則下一秒他手上的數將 會變成(x1*w1 + y1) mod m;若第二個人當前手中的數為w2,則下一秒他 手上的數將會變為(x2*w2 + y2) mod m。a mod b表示a除以b的餘數。

第0秒,兩個人手上的數分別為h1, h2; 請求出最快在第幾秒,第乙個 人手上的數為a1並且同時第二個人手上的數為a2。若不可能,則輸出-1。

[輸入格式]

輸入包含5*t+1行。 第一行為乙個正整數t,表示資料組數。 對於接下來的每一組資料,第一行為乙個正整數m,第二行包括兩個整數 h1, a1,第三行包括兩個整數x1, y1,第四行包括兩個整數h2, a2,第五 行包括兩個整數x2, y2。

[輸出格式]

輸出包含t行。 對於每一組資料,輸出一行,乙個整數,如題所述。

[樣例輸入]

4 21 1

0 12 3

1023

1 21 0

1 21 1

[樣例輸出]

-1[資料規模與約定]

對於30%的資料:m<=1000

對於100%的資料:t<=5, h1≠a1且h2≠a2,2<=m<=10^6, 0<=h1,a2,x1,y1,h2,a2,x2,y2由於要模m所以數值可能出現迴圈!

因此可以分為以下3種情況

1.剛好同時達成目標,直接輸出結果

2.任意乙個在迴圈之外且無法同時達到,輸出-1

3.目標屬豬都處在迴圈節當中

因此,當方程k1*(迴圈節長度)+(進入迴圈的步數)+(目標位置距離迴圈節起始位置)=k2*(迴圈節長度)+(進入迴圈的步數)+(目標位置距離迴圈節起始位置),(其中k1(再考慮一下時間複雜度,由於k1和k2都小於m,所以複雜度為o(m)

不說了,直接上**

#includeusing namespace std;

int a[1000010],b[1000010];

inline void work()

//如果是第一次出現迴圈節則儲存它的長度(len)和操作的次數(s)

if (b[w2]==0) b[w2]=cnt; //同上

else if (len2==0)

if (w1==a1&&first1==0)first1=cnt; //第一次最終答案的位置

if (w2==a2&&first2==0)first2=cnt;

if (w1==a1&&w2==a2) //如果已經滿足條件則不用繼續做,直接輸出結果

}if (first1<=s1||first2<=s2||first1==0||first2==0)//如果答案在迴圈節之外或者根本不存在,則輸出-1

for (int i=0;i<=1000000;i++) //列舉最終答案 }

cout<<-1<歡迎dalao指出錯誤~

YYHSOI模擬賽題解(T4完全平方數)

乙個數如果是另乙個整數的完全平方,那麼我們就稱這個數為完全平方數 pefect sqaure 也稱平方數。小a認為所有的平方數都是很perfect的 於是他給了小b乙個任務 用任意個不大於n的不同的正整數相乘得到完全平方數,並且小a希望這個平方數越大越好。請你幫助小b告訴小a滿足題意的最大的完全平方...

題解 2020 10 24 考試 T4 模板

題目傳送門 有乙個 n 個點組成的樹,有 m 次操作,每次將 1 to x 的路徑上每個點都加入乙個顏色為 c 的小球。但是每個點都有大小限制,即小球個數超過一定量之後就不能再加入了。有 q 次查詢,問操作完了之後每個點有多少種不同顏色的小球。sto llsw yyds orz 以下皆為 llsw ...

T4 咕咕東學英語(模擬題

題目解析 首先讓ans最大組合取ans n n 1 2.因為有這樣乙個字串,它的每乙個字元都屬於乙個長度大於1的回文子串中 所以回文子串組合,比如長度為5的字串 最多的子串組合,無非是 s1s2 s1s2s3 s1s2s3s4 s1s2s3s4s5 s2s3 s2s3s4 s2s3s4s5 s3s4...