POJ 1183 / Noi 01 反正切函数的应用 (等式变形 & 能否有比O(a)更快的算法?)

119 篇文章 0 订阅
100 篇文章 0 订阅
反正切函数的应用

Time Limit: 1000MS
Memory Limit: 10000K


由题意得等式
(c-a)(b-a)=a2+1
(注意xy+Dx+Ey+F=0的等式都可以化为(x+E)(y+D)=DE-F的形式)

然后令m=c-a,求出当m|(a2+1)时的b-a=(a2+1)/m,所以c+b = m+a+(a2+1)/m+a = ((a+m)2+1)/m

(话说能否有比O(a)更快的算法?)

完整代码:
/*0ms,132KB*/

#include<cstdio>
#include<cmath>

int main()
{
	__int64 a, m;
	scanf("%I64d", &a);
	for (m = a; (a * a + 1) % m; --m)
		;
	printf("%I64d\n", ((a + m) * (a + m) + 1) / m);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值