zoukankan      html  css  js  c++  java
  • NYOJ--491--dfs(打表水过)--幸运三角形

    /*
        Name: NYOJ--491--幸运三角形
        Author: shen_渊 
        Date: 15/04/17 16:26
        Description: DFS超时,深搜出第一行的所有情况,计算之后打表水过 
                    0,0,0,4,6,0,0,12,40,0,0,171,410,0,0,1896,5160,0,0,32757
    */
    #include<iostream>
    #include<cstring>
    using namespace std;
    const char ADD = '+';
    const char SUB = '-';
    void dfs(int);
    void cal();
    int n,counter;
    string str;
    int main()
    {
    //    freopen("in.txt","r",stdin);
    //    freopen("out.txt","w",stdout);
        while(cin>>n){
            counter = 0;
            str = "";
            dfs(0);
            cout<<counter<<endl;
        }
        return 0;
    }
    void dfs(int ct){
        if(ct == n){
            cal();
            return;
        }else{
            str[ct] = ADD;
            dfs(ct+1);
            str[ct] = SUB;
            dfs(ct+1);
        }
    }
    void cal(){
        int t = n;
        int suma=0,sums=0;
        while(t){
            int i;
            for(i=0; i<t; ++i){
                if(str[i] == ADD)suma++;
                else sums++;
            }
            for(i=0; i<t-1; ++i){
                if(str[i] == str[i+1])str[i] = ADD;
                else str[i] = SUB;
            }
            t--;
        }
        if(suma == sums)counter++;
    } 
    #include<iostream>
    using namespace std;
    int arr[20] = {0,0,0,4,6,0,0,12,40,0,0,171,410,0,0,1896,5160,0,0,32757};
    int main()
    {
        int n;
        ios::sync_with_stdio(false);
        while(cin>>n){
            cout<<arr[n]<<endl;
        }
        return 0;
    }
  • 相关阅读:
    关于我的介绍
    关于这周的作业
    关于这周的学习
    每周学习
    关于这周程序设计
    关于这周的总结
    关于这周的学习
    随机抽签程序报告
    Mysql的主从复制原理及部署
    项目架构脚本
  • 原文地址:https://www.cnblogs.com/langyao/p/7251884.html
Copyright © 2011-2022 走看看