首页 > 其他分享 >[CSP-J 2021] 分糖果

[CSP-J 2021] 分糖果

时间:2024-10-22 11:18:08浏览次数:9  
标签:10 le 样例 109 2021 小朋友 糖果 CSP

题面

题目背景

红太阳幼儿园的小朋友们开始分糖果啦!

题目描述

红太阳幼儿园有 n n n 个小朋友,你是其中之一。保证 n ≥ 2 n \ge 2 n≥2。

有一天你在幼儿园的后花园里发现无穷多颗糖果,你打算拿一些糖果回去分给幼儿园的小朋友们。

由于你只是个平平无奇的幼儿园小朋友,所以你的体力有限,至多只能拿 R R R 块糖回去。

但是拿的太少不够分的,所以你至少要拿 L L L 块糖回去。保证 n ≤ L ≤ R n \le L \le R n≤L≤R。

也就是说,如果你拿了 k k k 块糖,那么你需要保证 L ≤ k ≤ R L \le k \le R L≤k≤R。

如果你拿了 k k k 块糖,你将把这 k k k 块糖放到篮子里,并要求大家按照如下方案分糖果:只要篮子里有不少于 n n n 块糖果,幼儿园的所有 n n n 个小朋友(包括你自己)都从篮子中拿走恰好一块糖,直到篮子里的糖数量少于 n n n 块。此时篮子里剩余的糖果均归你所有——这些糖果是作为你搬糖果的奖励

作为幼儿园高质量小朋友,你希望让作为你搬糖果的奖励的糖果数量(而不是你最后获得的总糖果数量!)尽可能多;因此你需要写一个程序,依次输入 n , L , R n, L, R n,L,R,并输出你最多能获得多少作为你搬糖果的奖励的糖果数量。

输入格式

输入一行,包含三个正整数 n , L , R n, L, R n,L,R,分别表示小朋友的个数、糖果数量的下界和上界。

输出格式

输出一行一个整数,表示你最多能获得的作为你搬糖果的奖励的糖果数量。

样例 #1

样例输入 #1

7 16 23

样例输出 #1

6

样例 #2

样例输入 #2

10 14 18

样例输出 #2

8

提示

【样例解释 #1】

拿 k = 20 k = 20 k=20 块糖放入篮子里。

篮子里现在糖果数 20 ≥ n = 7 20 \ge n = 7 20≥n=7,因此所有小朋友获得一块糖;

篮子里现在糖果数变成 13 ≥ n = 7 13 \ge n = 7 13≥n=7,因此所有小朋友获得一块糖;

篮子里现在糖果数变成 6 < n = 7 6 < n = 7 6<n=7,因此这 6 6 6 块糖是作为你搬糖果的奖励

容易发现,你获得的作为你搬糖果的奖励的糖果数量不可能超过 6 6 6 块(不然,篮子里的糖果数量最后仍然不少于 n n n,需要继续每个小朋友拿一块),因此答案是 6 6 6。

【样例解释 #2】

容易发现,当你拿的糖数量 k k k 满足 14 = L ≤ k ≤ R = 18 14 = L \le k \le R = 18 14=L≤k≤R=18 时,所有小朋友获得一块糖后,剩下的 k − 10 k - 10 k−10 块糖总是作为你搬糖果的奖励的糖果数量,因此拿 k = 18 k = 18 k=18 块是最优解,答案是 8 8 8。

【数据范围】

测试点 n ≤ n \le n≤ R ≤ R \le R≤ R − L ≤ R - L \le R−L≤
1 1 1 2 2 2 5 5 5 5 5 5
2 2 2 5 5 5 10 10 10 10 10 10
3 3 3 10 3 {10}^3 103 10 3 {10}^3 103 10 3 {10}^3 103
4 4 4 10 5 {10}^5 105 10 5 {10}^5 105 10 5 {10}^5 105
5 5 5 10 3 {10}^3 103 10 9 {10}^9 109 0 0 0
6 6 6 10 3 {10}^3 103 10 9 {10}^9 109 10 3 {10}^3 103
7 7 7 10 5 {10}^5 105 10 9 {10}^9 109 10 5 {10}^5 105
8 8 8 10 9 {10}^9 109 10 9 {10}^9 109 10 9 {10}^9 109
9 9 9 10 9 {10}^9 109 10 9 {10}^9 109 10 9 {10}^9 109
10 10 10 10 9 {10}^9 109 10 9 {10}^9 109 10 9 {10}^9 109

对于所有数据,保证 2 ≤ n ≤ L ≤ R ≤ 10 9 2 \le n \le L \le R \le {10}^9 2≤n≤L≤R≤109。

思路

一、暴力枚举

从 l l l 到 r r r 枚举,求出最大值。

预期分数: 70 p t s 70 pts 70pts ,可以通过前七个测试点。

最坏时间复杂度: O ( n ) O(n) O(n)

问题:虽然分数不低,但是要注意这是入门组第一题,必须拿满分。

二、数学思维

既然暴力不行,我们考虑数学的方法。

很容易想到的一个答案:既然要取最大值,那不就是 n − 1 n-1 n−1 吗?

好,但是有一个问题,比如样例二是为什么呢?你看, r − l r-l r−l 此时等于 4 4 4 ,小于 n − 1 n-1 n−1 ,所以这个区间出不了 n − 1 n-1 n−1 的答案。

那这个答案是多少呢?既然最多的满足不了了,那我们干脆都拿走,不就是最多了的吗?

所以我们得到答案就是: m a x ( r − r ÷ n × n , n − 1 ) max(r - r \div n \times n,n-1) max(r−r÷n×n,n−1) 。注意,当取不到 n − 1 n-1 n−1 的时候,不能取大,只能取 r − r ÷ n × n r - r \div n \times n r−r÷n×n 。

程序

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
ll n,l,r;

int main()
{
    //freopen("candy.in","r",stdin);
    //freopen("candy.out","w",stdout);
	scanf("%lld%lld%lld",&n,&l,&r);
	ll m=r-r/n*n;
	if(r-m-1>=l && n-1>m) printf("%lld\n",n-1);
	else printf("%lld\n",m);
	return 0;
}

标签:10,le,样例,109,2021,小朋友,糖果,CSP
From: https://blog.csdn.net/lfggy/article/details/143087948

相关文章

  • Day11 备战CCF-CSP练习
    Day11题目描述题目很长,就不赘述了(主要是懒得写)题目解析Gauss消元题目的提示很明显,将元素守恒作为建立等式的基础。只要满足每一行元素守恒,即\(x_1+x_2+···+x_n=0\)即可元素个数为\(m\),物质个数为\(n\),增广矩阵的大下为\(m*(n+1)\),Gauss消元时间复杂度为\(O......
  • CSP2024 前集训:csp-s模拟12
    前言咕了好久才写,当时又发烧了所以没有交。虽然有两道签,但一道时计算几何一道放了T4都没打,T1赛时猜到结论和先看T4的都赢麻了,T1赛时\(π\)只会背倒第九位精度炸了暴力都不对。剩下的题当天太难受了都没改,改的两道都是specialjudge哎?T1小h的几何九点圆圆心的证......
  • CSP2024 前集训:多校A层冲刺NOIP2024模拟赛10
    前言不想说啥了最简单的一题是紫,去死吧只改了T1、T2,T2原题翻译和赛时题面描述都很唐,赛后断断续续加了好多hack。T1岛屿设\(f_{a,b}\)表示\(a\)条两端同色链,\(b\)条两端异色链时连通块数量的期望。红红蓝蓝相连得到红蓝\(\tof_{a-1,b+1}\)。红红红蓝相连得到红红......
  • csp2024 复习计划
    啊啊啊啊啊啊啊啊啊啊啊啊啊啊先复习板子,再复习Trick和题目。1.数据结构平衡树笛卡尔树线段树、树状数组的各种Trick哈希的方法、题目2.杂算法CDQ分治、整体二分、点分治、点分树KMP可以做道大搜索练练手3.图论最小生成树、最短路建模相关......
  • 信息学奥赛复赛复习18-CSP-J2023-01小苹果-向上取整、向下取整、模拟算法
    PDF文档公众号回复关键字:202410211P9748[CSP-J2023]小苹果[题目描述]小Y的桌子上放着n个苹果从左到右排成一列,编号为从1到n。小苞是小Y的好朋友,每天她都会从中拿走一些苹果。每天在拿的时候,小苞都是从左侧第1个苹果开始、每隔2个苹果拿走1个苹果。随......
  • CSP 模拟 52
    B最短路先建出最短路DAG,保证最短路径唯一,所以建出来的DAG是一棵树。考虑一个点的答案可以由谁来更新,假设当前点为点\(u\),它的dfs序控制范围是\(l,r\)。首先,它可以由子树外除了父亲的节点来更新,形如ans[u]=dis[v]+w,它也可以由子树内的节点更新,路径形如1->zc->v->u,要求中......
  • Day10 备战CCF-CSP练习
    Day10题目描述十滴水是一个非常经典的小游戏。小\(C\)正在玩一个一维版本的十滴水游戏。我们通过一个例子描述游戏的基本规则。游戏在一个$1×c$的网格上进行,格子用整数$x(1≤x≤c)$编号,编号从左往右依次递增。网格内\(m\)个格子里有\(1∼4\)滴水,其余格子里没有......
  • CSP2024 前集训:多校A层冲刺NOIP2024模拟赛08
    前言先痛骂没良心出题人,T1\(n\sqrtn\)多大你刚好给多大,一点不多给,T2才是签到题,因为放了T2位置打了暴力就去想T3了,我是唐氏,谁让你T1、T2swap的?T3实则三道题。但是还是感觉T1更简单啊,\(5e4\)搁哪儿摆着呢一眼\(O(n\sqrtn)\),甚至空间也是这么多,太明显了。挂分挂......
  • 对于 CF,AT,CSP-S,NOIP,我想说
    尽管我是div2一题水平,但是......
  • CSP-S前总复习
    里面大概有一两个星期吧,挑一些有价值的写。[ABC369F]GatherCoins来补的题目。先考虑不输出方案的写法。排序过后可以用一个DP实现。注意到DP的转移方程只和max有关,所以可以用数据结构优化。排序过后保证横坐标不降,所以只需要对纵坐标开一个树状数组,维护最大值,能做到......