poj1183 公式推导
作者:
暖昼氤氲 | 来源:发表于
2019-11-06 19:05 被阅读0次/*
Time:2019.11.6
Author: Goven
type:公式推导
err:
ref:
题目:化简为 min b+c=2a + (b-a)+(1+a*a)/(b-a); 等价于求解(1+a*a)的两个因子和x1,x2和x1+x2最小
可以证明 a = x1*x4 = x2*x3(其中 x1<x2<x3<x4),x1+x4>x2+x3.
所以只要找 (1+a*a)两个最相近的因子
*/
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
unsigned int a, n; //err1:int范围是2XX,unsigned为4XX
cin >> a;
n = 1 + a * a;
for (int i = sqrt((double)n); i >= 1; i--) {
if (n % i == 0) {
cout << n / i + i + 2 * a << endl;
break;
}
}
return 0;
}
本文标题:poj1183 公式推导
本文链接:https://www.haomeiwen.com/subject/xbkpbctx.html
网友评论