哪位大佬帮忙看看为什么TLE?求求了!!!

P7909 [CSP-J 2021] 分糖果

n可以到10^9,所以会超时。
by xiaoshumiao @ 2023-10-20 19:47:41


这题运用找规律的方法可以搞个O(1)的复杂度
by Shicheng182 @ 2023-10-20 19:56:16


通俗的讲解一下OK?
by xatjx @ 2023-10-20 20:20:39


@[xatjx](/user/767054) 二分 比如说这样 $O(log2(n))$ ```cpp #include <bits/stdc++.h> using namespace std; //typedef long long ll; typedef unsigned long long ll; typedef __int128 lint; typedef double db; typedef void vd; typedef bool bl; inline ll read() { ll s = 0, w = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-') w = -1; ch = getchar(); } while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar(); return s * w; } inline vd print(ll x) { if (x < 0) { putchar('-'); x = -x; } if (x >= 10) print(x / 10); putchar(x % 10 + '0'); return; } ll n,l,r,ans; int main() { n=read(),l=read(),r=read(); while(l<=r){ ll mid=l+r>>1; if(mid%n>ans) l=mid+1,ans=mid%n; else r=mid-1; } print(ans); return 0; } ```
by enyyyyyyy @ 2023-10-20 20:23:10


@[xatjx](/user/767054) 模板二分
by enyyyyyyy @ 2023-10-20 20:24:27


模板二分是啥?
by xatjx @ 2023-10-20 20:26:45


@[enyyyyyyy](/user/961881)
by xatjx @ 2023-10-20 21:19:58


```cpp #include <bits/stdc++.h> using namespace std; int n,l,r; int main(){ scanf("%d %d %d",&n,&l,&r); if(r/n>l/n){ printf("%d",n-1); }else{ printf("%d",r%n); } return 0; } ```
by littlesnake @ 2023-10-30 19:35:03


|