再次理解dfs,poj1014
来源:互联网 发布:多媒体课件制作软件 编辑:程序博客网 时间:2024/06/08 14:02
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
int a[7] = {0};
int flag = 0;
int half = 0;
void dfs( int value, int cus)
{
if (value == half){
flag = 1;
return;
}
if (flag)
return;
int i ;
for (i = cus; i > 0; i--){
if (a[i]){
if(value + i <= half)
{
a[i]--;
dfs(value+i, i);
if (flag)
return ;
}
}
}
}
int main()
{
int i, sum = 0, k = 0;
while (1){
k++; sum = 0; flag = 0;
for (i = 1; i <= 6; i++){
cin>>a[i];
sum += a[i]*i;
}
half = sum/2;
if (sum == 0)
break;
if (sum%2!=0)
cout<<"Collection #"<<k<<":"<<endl<<"Can't be divided."<<endl<<endl;
else
{
dfs(0,6);
if (flag)
cout<<"Collection #"<<k<<":"<<endl<<"Can be divided."<<endl<<endl;
else
cout<<"Collection #"<<k<<":"<<endl<<"Can't be divided."<<endl<<endl;
}
}
return 0;
}
#include<cstring>
#include<cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
int a[7] = {0};
int flag = 0;
int half = 0;
void dfs( int value, int cus)
{
if (value == half){
flag = 1;
return;
}
if (flag)
return;
int i ;
for (i = cus; i > 0; i--){
if (a[i]){
if(value + i <= half)
{
a[i]--;
dfs(value+i, i);
if (flag)
return ;
}
}
}
}
int main()
{
int i, sum = 0, k = 0;
while (1){
k++; sum = 0; flag = 0;
for (i = 1; i <= 6; i++){
cin>>a[i];
sum += a[i]*i;
}
half = sum/2;
if (sum == 0)
break;
if (sum%2!=0)
cout<<"Collection #"<<k<<":"<<endl<<"Can't be divided."<<endl<<endl;
else
{
dfs(0,6);
if (flag)
cout<<"Collection #"<<k<<":"<<endl<<"Can be divided."<<endl<<endl;
else
cout<<"Collection #"<<k<<":"<<endl<<"Can't be divided."<<endl<<endl;
}
}
return 0;
}
0 0
- 再次理解dfs,poj1014
- 再次理解DFS(POJ1014)
- poj1014 dfs
- POJ1014 DFS
- poj1014--贪心算法,dfs
- poj1014 Dividing DFS
- poj1014 dfs/背包/类筛法求素数
- POJ1014
- poj1014
- poj1014
- poj1014
- poj1014
- poj1014
- poj1014
- poj1014
- POJ1014
- 第十二天:poj1014(又见dfs,这次有图有真相)
- 再次理解fork()
- 什么是支付账户、备付金、网络支付、银行卡清算、贷记卡、代扣、代付....
- 爬取网站段子
- 08链表
- Linggle常用命令
- LeetCode 94. Binary Tree Inorder Traversal
- 再次理解dfs,poj1014
- 中缀表达式树及其结果计算
- 【VS2013】错误处理error C4996: 'fopen': This function or variable may be unsafe
- 第二章:Oracle数据库的用户和表空间
- 计161_Problem : 字符串替换(串)
- C++菱形继承
- 汉字转拼音软件 1.3 中文免费版|给汉字自动加汉语拼音的软件
- 前端初体验-baidu.com
- 【书山有路】快学Scala 第1章