P4994 终于结束的起点

P4994 终于结束的起点

解题思路

几个要点 :

一、 不能用数组,可能会爆;
二、 由于数可能溢出,每次加之后要对M取模,我习惯叫它对于M的特征值。

这个和码蹄集有一题有点像,不过那题是找规律题

#include<iostream>
using namespace std;

int main()
{
	int m;
	cin>>m;
	long long a1 = 1,a2 = 1,c = 0 , d = 0;
	for(int i = 3 ; ; i ++)
	{
		 c = (a1 + a2) % m ;
		 d = (a2 + c) % m;
		 a1 = c ;
		 a2 = d;
//		 cout<<c<<" "<<d<<endl;
		 
		 
		
		if( (c % m == 0 && d % m == 1) )
		{
			
			cout<< 2 * (i-1) - 1 <<endl;
			break;
		}
		if((d % m == 0 && (c + d) % m == 1))
		{
			cout<<2 * (i - 1);
			break;
		}
	}
	return 0;
}
posted @ 2026-05-21 19:50  shuiwangrenjia  阅读(6)  评论(0)    收藏  举报