2 条题解
-
0
这个题可能很多人会想到用模拟的方法来去做这道题,但是请看这个题的数据范围:
如果用for循环从l到r之间进行枚举的话,那么这个题就肯定会
所以我们该怎么办呢?答案也是用模拟的方式,只不过这个模拟可能不太一样。首先从零开始,每次把变量t增加一个n这样一直增加下去,总有一天这个t变量会超过l变量。等到超过了的时候,我们在对其进行一点一点的枚举。看最多能够拿到多少块糖作为我们分糖果的奖励。按照这样子的做法,这个题我们就可以轻松
so
AC代码走起
#include <bits/stdc++.h> #define ios ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr) #define LL long long int using namespace std; LL n,L,R,t; int main() { ios; scanf("%lld%lld%lld",&n,&L,&R); t=n; while(1) { if(t+n>L) break; t+=n; } for(int i=n-1;; i--) { if(t+i<=R) { printf("%d\n",i); break; } } return 0; }
最后建议大家
一定要开O2!!!
- 1
信息
- ID
- 484
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 7
- 标签
- 递交数
- 136
- 已通过
- 30
- 上传者