深圳网络营销网站推广方法,聚美优品的pc网站建设,做网站维护有危险吗,wordpress头条模板题目#xff1a; 样例解释#xff1a; 样例1解释 拿 k20 块糖放入篮子里。 篮子里现在糖果数 20≥n7#xff0c;因此所有小朋友获得一块糖#xff1b; 篮子里现在糖果数变成 13≥n7#xff0c;因此所有小朋友获得一块糖#xff1b; 篮子里现在糖果数变成 6n7#xf…题目 样例解释 样例1解释 拿 k20 块糖放入篮子里。 篮子里现在糖果数 20≥n7因此所有小朋友获得一块糖 篮子里现在糖果数变成 13≥n7因此所有小朋友获得一块糖 篮子里现在糖果数变成 6n7因此这 6 块糖是作为你搬糖果的奖励。 容易发现你获得的作为你搬糖果的奖励的糖果数量不可能超过 6 块不然篮子里的糖果数量最后仍然不少于 n需要继续每个小朋友拿一块因此答案是 6。 样例2解释 容易发现当你拿的糖数量 k 满足 14L≤k≤R18 时所有小朋友获得一块糖后剩下的 k−10 块糖总是作为你搬糖果的奖励的糖果数量因此拿 k18 块是最优解答案是 8。 思路 70分思路 暴力枚举 [l,r][l,r] 中的每一个整数并统计答案。 100分思路 取余运算的两个简单性质 大概是小学知识吧 nn 对任何正整数取余的结果都在 [0,n−1][0,n−1]范围内 若 x mod nyxmodny则 (xn) mod ny(xn)modny 因此我们能知道 若 r−l1≥nr−l1≥n则 [0,n−1][0,n−1] 中的每个正整数都能在 [l,r][l,r]中的正整数对 nn 取余的结果中找到此时答案为 n−1n−1 若 r−l1nr−l1n则再分类讨论 若 l mod n≤r mod nlmodn≤rmodn如下图 此时能取到的数的范围为上图的红色部分这时答案为 r mod nrmodn 注意 这里的分类是 l mod n≤r mod n l mod n≤r mod n而非 l mod nr mod n l mod nr mod n 若 l mod nr mod n lmod nr mod n如下图 此时能取到的数的范围为上图的红色部分这时答案为 n−1 代码
#includeiostream
#includecstdio
using namespace std;int n,l,r;int main(){cinnlr;if(l/nr/n) coutr%n;else coutn-1;return 0;
} 总结
此题解题关键为分类讨论必须贯彻不重不漏的原则否则有可能出错