首页 > 其他分享 >梅莉的市场经济学

梅莉的市场经济学

时间:2023-02-11 19:56:04浏览次数:29  
标签:梅莉 周期 .... LL 经济学 mid 2n 市场


思路

使用二分找到该数处在哪个完整周期中,然后通过确定该周期的区间l, r,可以找到该数的答案

推导

首先我们需要找到每个周期开始位置的关系,如2 7 19 ....
一看上去没什么规律,看他们的差值可以发现其实是个一个等差数列1 5 9 ....
那么可以通过等差数列求和来确定每个周期的开始位置,求和公式为:na1 + n(n-1)d / 2,得到2n(n-1)+n,然后向后挪一格即为开始位置的坐标
也就是2n(n-1)+n+1,继而可以求出结束位置为2n(n-1)+n+1+4n

void solve() {
	LL n;
	cin >> n;
	if (n == 1) {
		cout << 0 << endl;
		return ;
	}
	LL l = 1, r = 2e9, a = 0, mid;
	while (l < r) {
		mid = (l + r) >> 1;
		LL x = 2 * mid * mid - mid + 1;
		LL y = 2 * mid * mid + 3 * mid + 1;
		if (x <= n && y >= n) {
			a = mid;
			break;
		}
		if (x > n) r = mid;
		else l = mid + 1;
	}
	l = 2 * a * a - a + 1;
	if (n <= l + a) {
		cout << n - l << endl;
	}else if (n <= l + 3 * a) {
		cout << 2 * a - n + l << endl;
	}else cout << n - l - 4 * a << endl;
}

标签:梅莉,周期,....,LL,经济学,mid,2n,市场
From: https://www.cnblogs.com/lbzbk/p/17112437.html

相关文章