70pts 求调
  • 板块P11184 带余除法
  • 楼主2huk
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/10/13 12:34
  • 上次更新2024/10/13 14:33:48
查看原帖
70pts 求调
748509
2huk楼主2024/10/13 12:34

i can't solve J-T1

// Problem: U480670 带余除法
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/U480670?contestId=200686
// Memory Limit: 512 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include <bits/stdc++.h>

using namespace std;

const int N = 1e6 + 10;

typedef long long ll;

signed main() {
	int T;
	cin >> T;
	while (T -- ) {
		ll a, b;
		cin >> a >> b;
		if (!b) cout << 1 << '\n';
		else {
			ll lo = 1, hi = 1e14, L = 2, R = 1;
			
			while (lo <= hi) {
				ll mid = lo + hi >> 1;
				if (a / mid <= b) {
					L = mid;
					hi = mid - 1;
				} else {
					lo = mid + 1;
				}
			}
			
			lo = 1, hi = 1e14;
			while (lo <= hi) {
				ll mid = lo + hi >> 1;
				if (a / mid >= b) {
					R = mid;
					lo = mid + 1;
				} else {
					hi = mid - 1;
				}
			}
			
			cout << max(0ll, R - L + 1) << '\n';
		}
	}
	return 0;
}
2024/10/13 12:34
加载中...