幸運的袋子

題目描述

一個袋子里面有n個球缰雇,每個球上面都有一個號碼(擁有相同號碼的球是無區(qū)別的)混移。如果一個袋子是幸運的當且僅當所有球的號碼的和大于所有球的號碼的積。
例如:如果袋子里面的球的號碼是{1, 1, 2, 3},這個袋子就是幸運的档插,因為1 + 1 + 2 + 3 > 1 * 1 * 2 * 3
你可以適當從袋子里移除一些球(可以移除0個,但是別移除完),要使移除后的袋子是幸運的⊙窃伲現(xiàn)在讓你編程計算一下你可以獲得的多少種不同的幸運的袋子郭膛。

輸入描述:

第一行輸入一個正整數(shù)n(n ≤ 1000)
第二行為n個數(shù)正整數(shù)xi(xi ≤ 1000)

輸出描述:

輸出可以產(chǎn)生的幸運的袋子數(shù)

示例1

輸入

3
1 1 1

輸出

2

題解:

/*
思路:
1.如果a+b>a*b,則必有一個數(shù)為1。
2.證明:設a=x+1,b=y+1,(x+1)+(y+1)>(x+1)(y+1) => 1>x*y => 由于題中a,b為正整數(shù),x,y必有一個為0 =>x,y必有一個為1氛悬;
3.推廣到a1,a2,a3...ak. 如果sum<=pi:
    sum+am>pi*ak+m => am必為1则剃,但am為1,不一定能得到前者
    如果am>1,則sum+am<=pi*am一定成立如捅。(得到剪枝的重要依據(jù))
*/
#include<cstdio>
#include<set>
#include<algorithm>
using namespace std;
int n;
int num[1010];
bool cmp(int a, int b) {
    return a < b;
}
int dfs(int index, long long sum, long long mult) {
    int cnt = 0;
    for (int i = index; i < n; i++) {
        sum += num[i];
        mult *= num[i];
        if (sum > mult) {
            cnt += 1 + dfs(i + 1, sum, mult);
        }
        else if (num[i] == 1) {
            cnt += dfs(i + 1, sum, mult);
        }
        else break;
        sum -= num[i];
        mult /= num[i];
        for (; i < n - 1 && num[i + 1] == num[i]; i++);
    }
    return cnt;
}
int main() {
    scanf("%d", &n);
    for (int i = 0; i<n; i++) {
        scanf("%d", &num[i], cmp);
    }
    sort(num, num + n);
    printf("%d", dfs(0,0,1));
    return 0;
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末棍现,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子伪朽,更是在濱河造成了極大的恐慌轴咱,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異朴肺,居然都是意外死亡窖剑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門戈稿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來西土,“玉大人,你說我怎么就攤上這事鞍盗⌒枇耍” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵般甲,是天一觀的道長肋乍。 經(jīng)常有香客問我,道長敷存,這世上最難降的妖魔是什么墓造? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮锚烦,結果婚禮上觅闽,老公的妹妹穿的比我還像新娘。我一直安慰自己涮俄,他們只是感情好蛉拙,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著彻亲,像睡著了一般孕锄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上睹栖,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天硫惕,我揣著相機與錄音,去河邊找鬼野来。 笑死恼除,一個胖子當著我的面吹牛,可吹牛的內容都是我干的曼氛。 我是一名探鬼主播豁辉,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼舀患!你這毒婦竟也來了徽级?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤聊浅,失蹤者是張志新(化名)和其女友劉穎餐抢,沒想到半個月后现使,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡旷痕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年碳锈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片欺抗。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡售碳,死狀恐怖,靈堂內的尸體忽然破棺而出绞呈,到底是詐尸還是另有隱情贸人,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布佃声,位于F島的核電站艺智,受9級特大地震影響,放射性物質發(fā)生泄漏圾亏。R本人自食惡果不足惜力惯,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望召嘶。 院中可真熱鬧,春花似錦哮缺、人聲如沸弄跌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铛只。三九已至,卻和暖如春糠溜,著一層夾襖步出監(jiān)牢的瞬間淳玩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工非竿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蜕着,地道東北人。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓红柱,卻偏偏與公主長得像承匣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锤悄,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內容

  • 題目描述 一個袋子里面有n個球韧骗,每個球上面都有一個號碼(擁有相同號碼的球是無區(qū)別的)。如果一個袋子是幸運的當且僅當...
    水木年華_d444閱讀 1,126評論 0 0
  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,349評論 0 2
  • Andorid中經(jīng)常使用到格式對話框零聚。如下: 1.確定對話框: 實現(xiàn)代碼: new AlertDialog.Bui...
    OzanShareing閱讀 941評論 0 0
  • 兜兜轉轉,三個人政模,竟然糾纏了整整一生岗宣。究竟誰才能算得上那只“黃雀”?不得而知览徒。 到最后狈定,不過是全盤皆輸罷了,哪里還...
    南君NJ閱讀 565評論 0 2
  • 曾經(jīng)花開,曾經(jīng)葉落, 曾經(jīng)的天真爛漫, 曾經(jīng)年少的你我. 曾經(jīng)歡樂,曾經(jīng)高歌, 曾經(jīng)童話里的仙境, 曾經(jīng)夢魘里的惡...
    angelSeeLove閱讀 234評論 0 1