贤鱼的刷题日常-【c++】P7909 [CSP-J 2021] 分糖果
道題就是一道大水題,幾行代碼就結束了^^
- 題目題目背景
- 代碼
題目題目背景
紅太陽幼兒園的小朋友們開始分糖果啦!
題目描述
紅太陽幼兒園有 n 個小朋友,你是其中之一。保證 n≥2。
有一天你在幼兒園的后花園里發現無窮多顆糖果,你打算拿一些糖果回去分給幼兒園的小朋友們。
由于你只是個平平無奇的幼兒園小朋友,所以你的體力有限,至多只能拿 R 塊糖回去。
但是拿的太少不夠分的,所以你至少要拿 LL 塊糖回去。保證 n≤L≤R。
也就是說,如果你拿了 k 塊糖,那么你需要保證 L≤k≤R。
如果你拿了 k 塊糖,你將把這k 塊糖放到籃子里,并要求大家按照如下方案分糖果:只要籃子里有不少于 n 塊糖果,幼兒園的所有 n 個小朋友(包括你自己)都從籃子中拿走恰好一塊糖,直到籃子里的糖數量少于 n 塊。此時籃子里剩余的糖果均歸你所有——這些糖果是作為你搬糖果的獎勵。
作為幼兒園高質量小朋友,你希望讓作為你搬糖果的獎勵的糖果數量(而不是你最后獲得的總糖果數量!)盡可能多;因此你需要寫一個程序,依次輸入 n,L,R,并輸出你最多能獲得多少作為你搬糖果的獎勵的糖果數量。
輸入格式
輸入一行,包含三個正整數 n,L,R,分別表示小朋友的個數、糖果數量的下界和上界。
輸出格式
輸出一行一個整數,表示你最多能獲得的作為你搬糖果的獎勵的糖果數量。
輸入輸出樣例
輸入 #1復制
7 16 23
輸出 #1復制
6
輸入 #2復制
10 14 18
輸出 #2復制
8
輸入 #3復制
見附件中的 candy/candy3.in。
輸出 #3復制
見附件中的 candy/candy3.ans。
說明/提示
【樣例解釋 #1】
拿 k = 20 塊糖放入籃子里。
籃子里現在糖果數 20≥n=7,因此所有小朋友獲得一塊糖;
籃子里現在糖果數變成 113≥n=7,因此所有小朋友獲得一塊糖;
籃子里現在糖果數變成 6<n=7,因此這 66 塊糖是作為你搬糖果的獎勵。
容易發現,你獲得的作為你搬糖果的獎勵的糖果數量不可能超過 6 塊(不然,籃子里的糖果數量最后仍然不少于 n,需要繼續每個小朋友拿一塊),因此答案是 6。
【樣例解釋 #2】
容易發現,當你拿的糖數量 kk 滿足 14 = L \le k \le R = 1814=L≤k≤R=18 時,所有小朋友獲得一塊糖后,剩下的 k - 10k?10 塊糖總是作為你搬糖果的獎勵的糖果數量,因此拿 k = 18k=18 塊是最優解,答案是 88。
【數據范圍】
對于所有數據,保證 2≤n≤L≤R≤10 ^9
代碼
這道題主要是判斷糖的最少數量和最多數量是否在一個區間內,比如十個人,那么糖果1-9,10-19就是不同的區間,如果不在一個區間內,那么人數減一就是答案,如果在一個區間內,r%n的值就是答案
AC代碼如下
點個贊關注一下唄?^^
總結
以上是生活随笔為你收集整理的贤鱼的刷题日常-【c++】P7909 [CSP-J 2021] 分糖果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html入门教程博客,HTML基础教程
- 下一篇: 关于VC句柄的一种可爱的解释