挑選方案問題(牛客競賽 思維題+推導公式)
連結:https://ac.nowcoder.com/acm/contest/10322/C
來源:牛客網
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld
題目描述
自助餐廳裡有5個盤子,裡面裝的都是麵包。
第1個盤子裡有無限個麵包;
第2個盤子裡只有1個麵包;
第3個盤子裡只有4個麵包;
第4個盤子裡也有無限個麵包,但必須兩個兩個地拿;
第5個盤子裡也有無限個麵包,但必須5個5個地拿;
給定正整數n,求有多少種正好拿出n個麵包的方案。
方案a和方案b不同,當且僅當方案a存在從某個盤子裡拿出麵包的數量與方案b中對應盤子拿出的數量不同。
示例1
輸入
複製
1
返回值
複製
3
說明
有3種方案:
在第一個盤子拿一個。
在第二個盤子拿一個。
在第三個盤子拿一個。
示例2
輸入
複製
2
返回值
複製
6
說明
有6種方案:
在第一個盤子拿2個。
在第一個盤子拿1個,第二個盤子拿1個。
在第一個盤子拿1個,第三個盤子拿1個。
在第二個盤子拿1個,第三個盤子拿1個。
在第三個盤子拿2個。
在第四個盤子拿2個。
(請注意由於第四個盤子裡只能兩個兩個拿,所以必須拿偶數個)
備註:
n<=10^9
資料僅包含一個正整數n
輸出一個正整數表示答案。
思路:
n | 方案數 | n與n-1方案數的差值 |
---|---|---|
1 | 3 | / |
2 | 6 | 3 |
3 | 10 | 4 |
4 | 15 | 5 |
5 | 21 | 6 |
根據表中我們很容易知道,他們的差值是不斷加1的,但是通過迴圈每次加1這種方法是不可行的,因為資料太大,執行必定超時,故我們可以推出他的公式。
推導公式是:
方案數=(n+4)*(n-1)/ 2+3
知道公式程式碼就非常簡單了,但題目給的n是int型,需要強制轉換為long long 否則會錯誤,下面的程式碼我是直接定義的long long n
程式碼:
#include<stdio.h>
int main()
{
long long n;
scanf("%lld",&n); //這裡需要將n強制轉換,但這裡沒有寫出
long long s=(n+4)*(n-1)/2+3;
printf("%lld\n",s);
return 0;
}
相關文章
- 牛客挑戰賽72 總結
- 競賽選手問題的解答演算法演算法
- 牛客小白月賽88-DE題解
- 牛客小白月賽88 出題覆盤
- 牛客挑戰賽23-A.字串(尺取)字串
- 錯誤思維導向致IT專案問題多
- 牛客競賽,GDDU第十屆文遠知行杯新生程式設計競賽,摸魚記(BDEIKL題解,補G,ACFHJ)程式設計
- 牛客小白月賽100 ACM中的CM題ACM
- 挑戰程式設計競賽選讀-選擇排序程式設計排序
- Stanford機器學習課程筆記——LR的公式推導和過擬合問題解決方案機器學習筆記公式
- 牛客多校H題題解
- 《挑戰程式設計競賽(第2版)》譯者訪談問題有獎徵集程式設計
- 牛客錯題集(Java)Java
- C語言演算法競賽入門(二)—陣列元素移動、排序問題、猴子選大王問題C語言演算法陣列排序
- 牛客網Java評估題Java
- 牛客周賽 Round 66 題解
- 牛客網刷題(純java題型 31~60題)Java
- 牛客網刷題(純java題型 421~450題)Java
- 牛客網刷題(純java題型 241~270題)Java
- 牛客網刷題(純java題型 1~30題)Java
- 牛客小白月賽97
- 牛客小白月賽88
- 牛客小白月賽89
- 牛客小白月賽94
- 【重磅上線】思維導圖工具XMind:ZEN基礎問題詳解合集
- 如何可以快速創作思維導圖?好用的mac思維導圖軟體推薦Mac
- 谷歌欲通過競賽挑選Google Glass測試者谷歌Go
- 核化線性降維中部分公式的推導公式
- 牛客SQL練習第21題SQL
- 牛客周賽 Round 62 全部題解
- 牛客小白月賽98 A~D
- 牛客題霸NC132環形連結串列的約瑟夫問題Java題解Java
- mac思維導圖軟體推薦:mcMindMap for MacMac
- 關於浮動會錯亂的問題——轉換思維尋找替代方案
- 牛客網刷題(純java題型 91~120題)Java
- 牛客題霸 [括號序列] C++題解/答案C++
- 2020牛客暑期多校訓練營(第三場)D Points Construction Problem 構造思維題Struct
- jQuery 選擇器彙總-思維導圖-選擇器jQuery