【20171005】Luogu P1164 小A点菜
生活随笔
收集整理的這篇文章主要介紹了
【20171005】Luogu P1164 小A点菜
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目背景 Background uim神犇拿到了uoi的ra(鐳牌)后,立刻拉著基友小A到了一家……餐館,很低端的那種。 uim指著墻上的價目表(太低級了沒有菜單),說:“隨便點”。 ?題目描述 Description 不過uim由于買了一些輔(e)輔(ro)書,口袋里只剩M元(M<=10000)。
餐館雖低端,但是菜品種類不少,有N種(N<=100),第i種賣ai元(ai<=1000)。由于是很低端的餐館,所以每種菜只有一份。
小A奉行“不把錢吃光不罷休”,所以他點單一定剛好吧uim身上所有錢花完。他想知道有多少種點菜方法。
由于小A肚子太餓,所以最多只能等待1秒。 ?輸入輸出格式 Input/output 輸入格式:
第一行是兩個數字,表示N和M。
第二行起N個正數ai(可以有相同的數字,每個數字均在1000以內)。
輸出格式:
一個正整數,表示點菜方案數。 ?輸入輸出樣例 Sample input/output 樣例測試點#1
餐館雖低端,但是菜品種類不少,有N種(N<=100),第i種賣ai元(ai<=1000)。由于是很低端的餐館,所以每種菜只有一份。
小A奉行“不把錢吃光不罷休”,所以他點單一定剛好吧uim身上所有錢花完。他想知道有多少種點菜方法。
由于小A肚子太餓,所以最多只能等待1秒。 ?輸入輸出格式 Input/output 輸入格式:
第一行是兩個數字,表示N和M。
第二行起N個正數ai(可以有相同的數字,每個數字均在1000以內)。
輸出格式:
一個正整數,表示點菜方案數。 ?輸入輸出樣例 Sample input/output 樣例測試點#1
輸入樣例:
4 4
1 1 2 2
輸出樣例:
3
?
鄙人不才,用的是回溯:
1 #include <stdio.h> 2 #include<stdlib.h> 3 int way=0; //方案數 4 int price[101];//菜品價格(一看就是黑店) 5 int light[101]={0};//標記菜品是不是上過了(都說了Low,就一盤菜) 6 int Sum=0;//已經點了的菜品總價 7 int n,m;//看題吧~~~ 8 int cmp(const void *a,const void *b)//由大到小排序 9 { 10 return *(int *)b-*(int *)a; 11 } 12 void Search(int length,int floor,int start) 13 { 14 if(floor>length||Sum>m) 15 { 16 //好像忘了寫什么…… 17 //哦,這個時候點的菜太多了(沒菜點了) 18 //或者uim被吃窮了…… 19 return ; 20 } 21 else if(Sum==m)//滿足了小A邪惡的愿望 22 { 23 way++; 24 return ; 25 } 26 else 27 { 28 int i; 29 for(i=start;i<length;i++) 30 { 31 if(light[i]==1)continue;//每道菜上一次 32 Sum+=price[i];//加錢,加錢 33 light[i]=1;//告訴你上過這道菜了啊,我不做這菜了啊 34 Search(length,floor+1,i+1);//慫什么,深搜 35 light[i]=0; 36 Sum-=price[i]; 37 } 38 return ; 39 } 40 } 41 int main() 42 { 43 int i; 44 int len; 45 scanf("%d%d",&n,&m); 46 len=n; 47 for(i=0;i<len;i++) 48 { 49 scanf("%d",&price[i]); 50 if(price[i]>m)//uim一道菜都付不起,那還點來干嘛 51 { 52 i--;len--; 53 } 54 } 55 qsort(price,len,sizeof(price[0]),cmp); 56 57 Search(len,0,0); 58 /* 59 for(i=0;i<len;i++) 60 { 61 printf("%d ",price[i]); 62 } 63 printf("\n");*/ 64 printf("%d\n",way); 65 return 0; 66 }已經ac
轉載于:https://www.cnblogs.com/CXSheng/p/5171214.html
總結
以上是生活随笔為你收集整理的【20171005】Luogu P1164 小A点菜的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java native 关键字
- 下一篇: push declined due to