zoukankan      html  css  js  c++  java
  • POJ 2362 Sqare【DFS】


    http://poj.org/problem?id=2362
    POJ 2362 Sqare
    大意: 有n根木棒,长短不一,问能否使用所有的木棒摆出一个完整的正方形?
    分析:
    1.木棒的总长度整除4
    2.DFS

    View Code
    #include<stdio.h>
    #include
    <string.h>

    constint N =22;
    int sticks[N];
    bool visited[N];
    int part;
    int n;
    //从start根木棒出发,在已经凑齐pnum条边,
    //第pnum+1条边已有pre长度的情况下,搜索是否存在满足答案的解
    bool search(int start,int pnum,int pre)
    {
    if(pnum==3&&pre==part)
    returntrue;
    if(pre==part)
    {
    pnum
    ++;
    pre
    =0;
    start
    =0;
    }

    int i;
    for(i=start;i<n;i++)
    {
    if(visited[i]==false)
    {
    visited[i]
    =true;
    if(search(i+1,pnum,pre+sticks[i]))
    returntrue;
    visited[i]
    =false;
    }
    }
    returnfalse;
    }
    int main()
    {
    int T;
    scanf(
    "%d",&T);
    while(T--)
    {
    scanf(
    "%d",&n);
    int i;
    int sum =0;
    for(i=0;i<n;i++)
    {
    scanf(
    "%d",&sticks[i]);
    sum
    +=sticks[i];
    }

    memset(visited,
    false,sizeof(visited));
    part
    = sum/4;
    if(sum%4==0&&search(0,0,0))
    printf(
    "yes\n");
    else
    printf(
    "no\n");

    }
    return0;
    }
  • 相关阅读:
    装饰
    统一软件开发过程之2:用例文本书写
    统一软件开发过程之1:创建领域模型
    工厂方法
    volatile
    中介者
    建造者
    C#委托,事件与回调函数
    控件资源嵌入
    装饰
  • 原文地址:https://www.cnblogs.com/AndreMouche/p/1982901.html
Copyright © 2011-2022 走看看