日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

贤鱼的刷题日常-【c++】P7909 [CSP-J 2021] 分糖果

發布時間:2024/8/1 c/c++ 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 贤鱼的刷题日常-【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代碼如下

#include<cmath> #include<cstdio> #include<cstring> #include<iostream> using namespace std; int n,l,r; int c; int mx; int main(){ // freopen("candy.in","r",stdin); // freopen("candy.out","w",stdout); cin>>n>>l>>r;if(l/n<r/n)cout<<n-1<<endl; elsecout<<r%n<<endl; }

點個贊關注一下唄?^^

總結

以上是生活随笔為你收集整理的贤鱼的刷题日常-【c++】P7909 [CSP-J 2021] 分糖果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。