吳奶奶買魚

來源:互聯網
上載者:User

Description
吳奶奶有個可愛的外孫女——琪琪,她很喜歡小動物,尤其喜歡養魚。為了讓小孫女養到漂亮的小魚,吳奶奶一大早就到花鳥魚蟲市場買魚。這個市場可真大,裡面有各種各樣的寵物,就連寵物魚都有好幾十種。這些魚實在是太美了,買的人越來越多,可是因為貨源有限,賣魚的老闆不得不規定:同一種魚,每個人最多隻能買一條,並且有些魚是不能一起買的,因為它們之間會互相爭鬥吞食。 吳奶奶想儘可能地買多些魚,但可惜,她的資金有限,這可怎麼辦好呢?請編寫一個程式協助她。如果有多個方案都能買到儘可能多的魚,則選擇所花資金最多的一個。
Input
輸入檔案的第一行為兩個正整數M(M≤1000),N(N≤30),分別表示吳奶奶的資金和魚的種類。以下N行,每行有兩個正整數S(1≤S≤N),T,分別表示某種魚的編號以及該魚的價格。 接著,每行有兩個整數P,Q。當P,Q大於0時,表示P,Q不能共處;當P,Q均等於0時,表示輸入檔案的結束。
Output
檔案的第一行為兩個正整數X,Y,分別表示所買魚的條數和總花費。
Sample Input
170 71 702 503 304 405 40 6 307 201 41 73 43 55 76 70 0
Sample Output
4 160

其實就是0/1背包,加上一些限制條件,可以用搜尋AC的
下面是AC代碼:
#include<iostream>using namespace std;int need[100];//int s[100],t[100];int f[100][100];int ans,i,l=0,n,m,num;int hash[100];int ansh[100];void dfs(int cur,int sum,int fish){int thash[31];if(cur>n){if(num<fish||(num==fish&&sum>ans)){num=fish;ans=sum;/*for(i=1;i<=n;i++){ansh[i]=hash[i];}*/}return ;}    if(fish+n-cur+1<num)  return;if(!hash[cur]&&sum+need[cur]<=m){for(i=1;i<=n;i++)thash[i]=hash[i];hash[cur]=2;              //表示買了這條魚for(i=1;i<=n;i++){if(f[cur][i]&&!hash[i])hash[i]=1;}dfs(cur+1,sum+need[cur],fish+1);for(i=1;i<=n;i++)hash[i]=thash[i];hash[cur]=0;}dfs(cur+1,sum,fish);}int main(){int a,b,i,j;scanf("%d%d",&m,&n);l=0;ans=0,num=0;for(i=1;i<=n;i++){scanf("%d",&j);scanf("%d",&need[j]);}    scanf("%d%d",&a,&b);while(a!=0||b!=0){f[a][b]=1; f[b][a]=1;scanf("%d%d",&a,&b);}//for(i=0;i<l;i++)//cout<<p[i]<<" "<<q[i]<<endl;//cout<<1<<endl;dfs(1,0,0);printf("%d %d",num,ans);//cout<<num<<" "<<ans<<endl;//for(i=1;i<=n;i++)//if(ansh[i]==2)//cout<<i<<endl;return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.