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...