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