标签:style blog class c code tar
题意:
有十种珠宝用数字表示,现在给你每个珠宝的数量,问可不可以平均分给两个人。
解题思路:
DFS搜索可以写。将完全背包问题转换为搜索问题。
具体代码:
#include<iostream> #include<cstring> #include<stdio.h> using namespace std; int num[15],sum; bool dfs(int n,int m) { if(n==0||m==0) { if(m==0) return true; } else { for(int i=num[n];i>=0;i--) { if(m>=n*i&&dfs(n-1,m-n*i)) { return true; } } } return false; } int main() { int temp=1; while(1) { sum=0; for(int i=1;i<=10;i++) { cin>>num[i]; sum+=i*num[i]; } if(sum==0) break; if(sum%2!=0) printf("#%d:Can‘t be divided.\n",temp); else { if(dfs(10,sum/2)) printf("#%d:Can be divided.\n",temp); else printf("#%d:Can‘t be divided.\n",temp); } temp++; } system("pause"); return 0; }
nyoj--Divideing Jewels,布布扣,bubuko.com
标签:style blog class c code tar
原文地址:http://www.cnblogs.com/baoluqi/p/3738567.html