1 条题解
-
0
逆天乱搞题,又称暴力缝合怪,根号分治了解一下。
#include<bits/stdc++.h> using namespace std; #define int long long const int B=1e5; void solve() { int a,b,ans=1e9;cin>>a>>b; if(a<=B) for(int i=0;i<=B;i++) if(b%(a+i))ans=min(ans,a+i*2-b%(a+i)); else ans=min(ans,i); else for(int k=1;k<=B;k++) { if(k*a<b) { int x=ceil(1.0*(b-k*a)/k); ans=min(ans,k*(a+x)-b+x); } else ans=min(ans,k*a-b); } cout<<ans<<'\n'; } signed main() { int t;cin>>t; while(t--)solve(); return 0; }
- 1
信息
- ID
- 1150
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 9
- 标签
- 递交数
- 14
- 已通过
- 4
- 上传者