• USACO Zero Sum


    想练练自己的深搜,倔强的不愿意for循环来搞。写了五个参数的dfs最后ac掉了。最先我写的是两个参数的,因为没看清题意以为求的是解的总数,后来才知道要打印出所有解。参数一直加,直到加了五个参数。我的dfs很烂。但慢慢写总会好的。

    View Code
    #include <algorithm>
    #include <iostream>
    #include <cstdlib>
    #include <cstring>
    #include <string>
    #include <cstdio>
    #include <vector>
    
    using namespace std;
    int n,ans,sum;
    char s[100];
    
    void dfs(int cur,int sum,int len,int fa,int last)
    {
        s[len]=cur+'0';
        if(cur==n)
        {
            if(sum==0)
                printf("%s\n",s);
            return;
        }
        for(int i=0;i<3;i++)
        {
            if(i==0)
            {
                len++;
                s[len]=' ';
    
                if(fa==-1)
                    dfs(cur+1,sum*10+cur+1,len+1,fa,last);
    
    //            else if(fa==0)
    //                dfs(cur+1,sum*10+cur+1,len+1,fa);
    
                else if(fa==1)
                    dfs(cur+1,sum-last+(last*10+cur+1),len+1,fa,last*10+cur+1);
    
                else if(fa==2)
                    dfs(cur+1,sum+last-(last*10+cur+1),len+1,fa,last*10+cur+1);
                len--;
            }
            if(i==1)
            {
                len++;
                s[len]='+';
                dfs(cur+1,sum+cur+1,len+1,i,cur+1);
                len--;
            }
            if(i==2)
            {
                len++;
                s[len]='-';
                dfs(cur+1,sum-cur-1,len+1,i,cur+1);
                len--;
            }
        }
        len--;
    }
    
    int main()
    {
        while(~scanf("%d",&n))
        {
            ans=sum=0;
            memset(s,0,sizeof(s));
            dfs(1,1,0,-1,0);
        }
        return 0;
    }

    相信大家有更容易的做法,请多多指教。。

  • 相关阅读:
    Django之模板
    Django之视图
    Django之web框架和url路由
    SpringBoot整合Druid数据源
    SpringBoot整合定时任务异步任务
    逐行解读HashMap源码
    SpringBoot通过RedisTemplate执行Lua脚本
    SpringBoot使用H2内嵌数据库
    SpringBoot如何使用拦截器
    SpringBoot热部署的实现方式
  • 原文地址:https://www.cnblogs.com/RainingDays/p/2944026.html
Copyright © 2020-2023  润新知