首页 > 其他 > 详细

洛谷——P2383 狗哥玩木棒

时间:2017-09-03 10:53:13      阅读:286      评论:0      收藏:0      [点我收藏+]

https://www.luogu.org/problem/show?pid=2383

题目背景

狗哥又趁着语文课干些无聊的事了...

题目描述

现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢?

输入输出格式

输入格式:

 

输入文件中的第一行是一个整数n表示测试的组数,接下来n行表示每组的测试数据。 每行的第一个数为m(4<=m<=20),接下来m个数ai(1<=ai<=1000)表示木棒的长度。

 

输出格式:

 

对于每组测试数据,如果可以组成正方形输出“yes”,否则输出“no”。

 

输入输出样例

输入样例#1:
3
4 1 1 1 1 
5 10 20 30 40 50 
8 1 7 2 6 4 4 3 5
输出样例#1:
yes
no
yes

说明

狗哥快抓狂了

 

DFS入门中。。

 1 #include <cstdio>
 2 
 3 int n,a[26],tot;
 4 int lenedge[5];
 5 bool flag;
 6 
 7 void DFS(int now)
 8 {
 9     if(flag) return ;
10     if(now==n+1)
11     {
12         flag=1;
13         return ;
14     }
15     for(int i=1;i<5;i++)
16     {
17         if(lenedge[i]>=a[now])
18         {
19             lenedge[i]-=a[now];
20             DFS(now+1);
21             lenedge[i]+=a[now];
22         }
23     }
24 }
25 
26 int AC()
27 {
28     int t; scanf("%d",&t);
29     for(;t--;tot=0,flag=0)
30     {
31         scanf("%d",&n);
32         for(int i=1;i<=n;i++)
33             scanf("%d",a+i),tot+=a[i];
34         if(tot%4)
35         {
36             puts("no");
37             continue;
38         }
39         for(int i=1;i<5;i++)
40             lenedge[i]=tot/4;
41         DFS(1);
42         if(flag) puts("yes");
43         else puts("no");
44     }
45     return 0;
46 }
47 
48 int Hope=AC();
49 int main(){;}

 

洛谷——P2383 狗哥玩木棒

原文:http://www.cnblogs.com/Shy-key/p/7468855.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!