POJ 2362
2016-03-13 10:54
471 查看
#include <cstdio> #include <algorithm> using namespace std; int a[100],big,sum,n,cas,v[100],flag; int cmp(int a,int b){ return a>b; } int dfs(int k,int id,int res){ if(k==3) return 1; for(int i=id;i<=n;i++){ if(!v[i] && res>=a[i]){ v[i]=1; if(res==a[i]){ if(dfs(k+1,1,sum/4)) return 1; }else if(dfs(k,i+1,res-a[i])) return 1; v[i]=0; } } return 0; } int main() { scanf("%d",&cas); while(cas--){ big=0; sum=0; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); if(a[i]>big) big=a[i]; sum+=a[i]; } flag=0; if(sum%4!=0 || big>sum/4){ printf("no\n"); continue; } else{ sort(a+1,a+n+1,cmp); for(int i=0;i<100;i++) v[i]=0; flag=dfs(0,1,sum/4); } if(flag!=0) printf("yes\n"); else printf("no\n"); } return 0; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性