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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AtCoder-2379 - 连接竹竿 思维 | 数学

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AtCoder-2379 - 连接竹竿 思维 | 数学 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Problem Statement

?

Snuke has?N?integers. Among them, the smallest is?A, and the largest is?B. We are interested in the sum of those?N?integers. How many different possible sums there are?

Constraints

?

  • 1≤N,A,B≤109
  • A?and?B?are integers.

Input

?

Input is given from Standard Input in the following format:

N A B

Output

?

Print the number of the different possible sums.

Sample Input 1

?

4 4 6

Sample Output 1

?

5

There are five possible sums:?18=4+4+4+6,?19=4+4+5+6,?20=4+5+5+6,?21=4+5+6+6?and?22=4+6+6+6.

?

有點唬人 還以為是組合數學相關一類的問題

題意:就是說已知有N條竹竿? 然后竹竿長度分布的范圍為A~B?

那么求不同可能的長度的竹竿長度之和的數量?

?

分析:一開始一直再往r進制或是組合數上想 因為這種問題難免考慮組合

但是最后也沒想出一個理想的公式 看過題解后才發覺有更簡單更好的做法

我們可知竹竿之和的范圍:?N個竹竿 長度之和最小大概是 (N-1)* A+B? ?~ (N-1)*B+A 此為最大值

那么如果從最小之和開始 讓一個竹竿長度+1 那么最終之和就是離著最大和又近了一步 那么如果重復上個步驟

我們會發現 由于每個竹竿都向一個從A~B的進度條 于是乎在范圍內的所有長度都會通過+1遍歷到

所以 幾行代碼就搞定

?

#include<bits/stdc++.h> using namespace std; typedef long long ll; int main() {ll n,s,e;scanf("%lld%lld%lld",&n,&s,&e);printf("%lld\n",max(1LL*0,((n-1)*e+s)-((n-1)*s+e-1)));//int會溢出return 0; }

?

?

總結

以上是生活随笔為你收集整理的AtCoder-2379 - 连接竹竿 思维 | 数学的全部內容,希望文章能夠幫你解決所遇到的問題。

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