pku1183[轉自GSY師姐的一篇貼子]

題目連接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1183

已知 a*(b+c)=bc-1; 給一個1=<a<=6000,求這個方程b,c正整解使b+c最小,
        可以設t=b+c;則b+c=t;b*c=a*t+1;b,c爲x^2-t*x+a*t+1=0的根。
        1.問題轉化爲x^2-t*x+a*t+1=0,求最小的t使該方程解都爲正整數。
          考察判別式det=t^2-4*a*t-4;判別式需爲完全平方數。
          於是設t^2-4*a*t-4=k^2;
          變形一下得(t-2*a-k)*(t-2*a+k)=4*(a^2+1);
          t-2*a-k與(t-2*a+k)同奇偶,由等號右邊爲偶,設
       2.t-2*a-k=2*i,t-2*a+k=2*j(i*j=a^2+1);
          上兩式相加於是t可表示爲t=2*a+i+j;
           現在就是求i+j的最小值了,積一定,i與j相差越小i+j越小
           i=a 往小的開始枚舉,一旦(a^2+1)%i==0跳出
        3.輸出t=2*a+i+j;

注:結果會很大,注意使用long long

rookie的代碼:

發佈了23 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章