CH2201 小貓爬山

2022-08-03 02:48:09 字數 697 閱讀 3966

一道很基礎的深搜題,資料範圍不大,稍加剪枝即可通過。

將重量降序排列,對於已經選了的車,嘗試當前的貓能不能坐,如果全部嘗試失敗,則另用一輛車。

1 #include 2 #include 3 #include 4 typedef long

long

ll;5 inline int

read()

9while(c<='

9'&&c>='

0') ret=ret*10+c-'

0',c=getchar();

10return ret*f;11}

12using

namespace

std;

13int n,a[20],use[20

],w;

14int

ans;

15int cmp(int x,int

y) 18

void dfs(int now,int

sum)

24for(int i=1;i<=sum;i++)

25if(a[now]+use[i]<=w)

30 use[sum+1]=a[now];

31 dfs(now+1,sum+1

);32 use[sum+1]=0;33

}34intmain()

ac code

CH2201 小貓爬山 DFS

設狀態為 no w,cn t now,cnt now,c nt now nowno w 表示當前要分配第幾隻貓,cnt cntcn t 表示已經租用了多少輛纜車 同時記錄下每輛纜車的重量情況,dfs即可。當前 cnt cntcn t 若大於等於已求的答案,直接返回 按重量給貓排序,先放重量大的。in...

CH 2201 小貓爬山 高階指南,搜尋

1 用乙個陣列,cab maxn 記錄每一輛車上所有貓的重量 void dfs int now,int cnt now 表示當前已經有多少只貓上車,車的數量是 cnt cab i cat now 選擇某一輛車 cab i 輛裝當前貓 cat now dfs now 1,cnt 遞迴 cab i ca...

小貓爬山(dfs)

時間限制 1 sec 記憶體限制 128 mb 題目描述 freda和rainbow飼養了n只小貓,這天,小貓們要去爬山。經歷了千辛萬苦,小貓們終於爬上了山頂,但是疲倦的它們再也不想徒步走下山了 嗚咕 freda和rainbow只好花錢讓它們坐索道下山。索道上的纜車最大承重量為w,而n只小貓的重量分...