#include<iostream>
using namespace std; int data[];
int total;
int rec;
int n;
int vis[];
int flag;
int flag1; void dfs(int step,int sum,int k)
{
if(step==) //step为3时就可以退出了,因为前面三步都已经成功了,剩下的肯定能拼成
{
flag1=;
return;
}
for(int i=k;i<n;i++)
{
if(sum+data[i]>rec)
continue;
if(vis[i]==)
{
vis[i]=;
if(sum+data[i]<rec)
{
dfs(step,sum+data[i],i+);
if(flag1) //剪枝,上一个dfs回来后如果已经满足条件就不用向下进行了
return;
}
if(sum+data[i]==rec)
{
dfs(step+,,);
if(flag1) //剪枝,上一个dfs回来后如果已经满足条件就不用向下进行了
return;
}
vis[i]=;
}
}
return;
} int main()
{
int case_num;
//freopen("input.txt","r",stdin);
cin>>case_num;
for(int p=;p<=case_num;p++)
{
total=;
cin>>n;
for(int i=;i<n;i++)
{
cin>>data[i];
total=total+data[i];
}
if(total%)
{
cout<<"no"<<endl;
continue;
}
else
rec=total/;
flag=;
for(int i=;i<n;i++)
{
if(data[i]>rec)
{
flag=;
cout<<"no"<<endl;
}
break;
}
if(flag)
continue;
for(int i=;i<n;i++)
{
for(int j=;j<n--i;j++)
{
if(data[j]<data[j+])
{
int temp=data[j];
data[j]=data[j+];
data[j+]=temp;
}
}
}
for(int i=;i<n;i++)
vis[i]=;
flag1=;
dfs(,,);
if(flag1)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
return ;
}

poj2362的更多相关文章

  1. poj2362 Square(DFS)

    题目链接 http://poj.org/problem?id=2362 题意 输入n根棍子的长度,求这n根棍子是否能组成一个正方形. 思路 假设能组成正方形,则正方形的周长为sum,sum/4为正方形 ...

  2. dfs+剪枝:poj2362

    贴题目 Square Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 24604   Accepted: 8449 Descr ...

  3. TOJ1398正方形的编成 或者 POJ2362

    #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> ...

  4. POJ2362贪心

    题意:我们的化学生物学家发明了一种新的叫stripies非常神奇的生命.如果一个质量为m1和m2的stripies相撞,生成的stripies体重是2*sqrt(m1*m2) 现在,科学家们想知道,如 ...

  5. poj2362 Square

    Description Given a set of sticks of various lengths, is it possible to join them end-to-end to form ...

  6. poj练习题的方法

    poj1010--邮票问题 DFSpoj1011--Sticks dfs + 剪枝poj1020--拼蛋糕poj1054--The Troublesome Frogpoj1062--昂贵的聘礼poj1 ...

  7. poj 算法 分类

    转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 最近AC题:2528   更新时间:2011.09.22  ...

  8. poj1011 搜索+剪枝

    DFS+剪枝 POJ2362的强化版,重点在于剪枝 令InitLen为所求的最短原始棒长,maxlen为给定的棒子堆中最长的棒子,sumlen为这堆棒子的长度之和,那么InitLen必定在范围[max ...

  9. POJ 水题(刷题)进阶

    转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 部分解题报告添加新内容,除了原有的"大致题意&q ...

随机推荐

  1. docker时间和本地时间不一致的问题

    前言: 在本地执行date 和登录docker后的date显示的时间不一致,差一天多,不是8个小时 参考:戳这儿 先重启,查看后发现差8个小时 用里面cp localtime 再重启还是差8个小时 试 ...

  2. POJ 3304 Segments(直线)

    题目: Description Given n segments in the two dimensional space, write a program, which determines if ...

  3. yum安装mysql

    安装 CentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql,但是CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源 ...

  4. 2017蓝桥杯第十题(k倍区间)

    #include<iostream> #include<stdio.h> using namespace std; ; ],a[N]; int lowbit(int n){ r ...

  5. ASP.NET Core之依赖注入

    本文翻译自:http://www.tutorialsteacher.com/core/dependency-injection-in-aspnet-core ASP.NET Core支持依赖注入,依赖 ...

  6. Python编码规范(PEP8)

    Introduction 介绍 本文提供的Python代码编码规范基于Python主要发行版本的标准库.Python的C语言实现的C代码规范请查看相应的PEP指南1. 这篇文档以及PEP 257(文档 ...

  7. SQL 安装MySQL

    假设学员的电脑是Windows系统,如Windows7,需要准备以下软件 Microsoft .NET Framework 4.5 Visual C++ Redistributable for Vis ...

  8. drop、truncate和delete的区别

    TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源 ...

  9. PHP unicode与普通字符串的相互转化

    unicode转字符串 方法一:json /** * unicode转字符串,通过json转化 * @param $str * @return string */ function unicode_d ...

  10. 20172328 2018—2019《Java软件结构与数据结构》第二周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第二周学习总结 概述 Generalization 本周学习了第三章集合概述--栈和第四章链式结构--栈.主要讨论了集合以 ...