Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【USACO 2.3】Zero Sum(dfs)

【USACO 2.3】Zero Sum(dfs)

作者头像
饶文津
发布于 2020-06-02 03:05:47
发布于 2020-06-02 03:05:47
45200
代码可运行
举报
文章被收录于专栏:饶文津的专栏饶文津的专栏
运行总次数:0
代码可运行

按字典序输出所有在123..n之间插入'+','-',' '结果为0的表达式。.

http://train.usaco.org/usacoprob2?a=jUh88pMwCSQ&S=zerosum

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
TASK:zerosum
LANG:C++
*/
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
#define N 15
int n;
int k[N],cnt,s[3]={0,1,-1};
string ans[7000];
void dfs(int d){
    if(d>n){
        int sum=0,c=1;
        for(int i=2;i<=n;i++){
            if(k[i]){
                sum+=c;
                c=i*k[i];
            }else{
                c=c*10+(c>0?i:-i);
            }
        }
        sum+=c;
        if(sum==0){
            ans[++cnt]+="1";
            for(int i=2;i<=n;i++){
                ans[cnt]+=k[i]>0?'+':k[i]<0?'-':' ';
                ans[cnt]+=i+'0';
            }
        }
        return;
    }
    for(int i=0;i<=2;i++){
        k[d]=s[i];
        dfs(d+1);
    }
}
int main(){
    freopen("zerosum.in","r",stdin);
    freopen("zerosum.out","w",stdout);
    scanf("%d",&n);
    dfs(2);
    for(int i=1;i<=cnt;i++){
        printf("%s\n",ans[i].c_str());
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-10-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【USACO 2.2】Preface Numbering (找规律)
于是我们从最后一位往前考虑,当前位由字母 s[i] 代表 1,字母 s[i+1] 代表 5,s[i+2] 代表 10(在下一次代表1)。
饶文津
2020/06/02
2850
【USACO 1.3】Ski Course Design
n个点(n<=1000)大小范围[0,100],改变一些点的值,使得极差不超过17,代价为改变值的平方。
饶文津
2020/06/02
5050
【USACO 3.1】Contact(01子串按出现次数排序)
题意:给你一个01字符串,将长度为a到b之间(包含a、b)的子串按照出现次数排序。注意输入输出格式
饶文津
2020/06/02
3920
【USACO 2.2】Subset Sums (DP)
 N (1 <= N <= 39),问有多少种把1到N划分为两个集合的方法使得两个集合的和相等。
饶文津
2020/06/02
3030
【USACO 2.3】Money Systems(dp)
dp[i][j]表示前i种货币价格为j有多少种方案,dp[i][j]+=dp[i-1][j-c]。
饶文津
2020/06/02
3820
【USACO 2.4】Overfencing(bfs最短路)
H行W列的迷宫,用2*H+1行的字符串表示,每行最多有2*W+1个字符,省略每行后面的空格。迷宫的边界上有且仅有两个出口,求每个点出发到出口的最短路。
饶文津
2020/06/02
3530
【USACO 2.3】Controlling Companies (递推)
题意:A公司对B公司有控制权的条件是满足下面条件之一:A=B,A对B的股份超过50%,A控制的公司对B的股份之和超过50%。
饶文津
2020/06/02
5010
【USACO 2.3】Cow Pedigrees(DP)
dp[i][j]=dp[lk][ln]*dp[rk][j-1-ln],max(lk,rk)=i-1。
饶文津
2020/06/02
3620
【USACO 2.3】The Longest Prefix
dp[i]表示第i位结尾的前缀是否可行,然后枚举每一位如果dp[i-1]==1,枚举所有单词,匹配成功的单词,则dp[i+单词长度-1]=1。
饶文津
2020/06/02
4590
【USACO 3.1】Score Inflation(完全背包)
完全背包。 http://train.usaco.org/usacoprob2?a=3Srffjlf4QI&S=inflate /* TASK:inflate LANG:C++ URL: */ #in
饶文津
2020/06/02
3070
【USACO 1.4】Combination Lock
/* TASK:combo LANG:C++ URL:http://train.usaco.org/usacoprob2?a=E6RZnAhV9zn&S=combo SOLVE:自己做,想的是5*5*
饶文津
2020/06/02
3870
【USACO 1.5】Prime Palindromes
1 /* 2 TASK: pprime 3 LANG: C++ 4 SOLVE: 枚举数的长度,dfs出对称的数,判断是否在范围内,是否是素数 5 原来想着枚举每个范围里的数,但是显然超时,范围最大是10^9。 6 对称的数只有9*2+9*9*2+9*9*9*2+9*9*9*9*2个,再加上几个九位数的。 7 共一万多个。 8 n=10000 9 复杂度就是O(根号n)。 10 */ 11 #include<cstdio> 12 #include<cstring> 13 int l,r,
饶文津
2020/06/02
3810
【USACO 1.2】Name That Number
给你一串数字(≤12个),每个数字可以对应3个字母,求生成的所有字符串里,在字典内的有哪些。
饶文津
2020/06/02
3850
【USACO 1.4】Arithmetic Progressions
/* TASK: ariprog LANG:C++ URL:http://train.usaco.org/usacoprob2?a=PA9lOcZrdWq&S=ariprog SOLVE:平方和最大为
饶文津
2020/06/02
3340
【USACO 2.2】Party Lamps
四种开关,n盏灯,1:改变所有灯状态,2:改变奇数灯状态,3:改变偶数灯状态,4:改变3k+1灯状态
饶文津
2020/06/02
6620
【USACO 2.1】The Castle
/* TASK: castle LANG: C++ SOLVE: 深搜,注意每个方向对应值。枚举去掉的墙,然后再dfs,注意墙要复原,并且dfs里要判断是否超出边界。 */ #include<cstdio> #include<algorithm> #include<cstring> #define N 55 using namespace std; int n,m; int a[N][N]; int ans,num,cnt; int rans,rm,d; char dir[5]="WNES"; int v
饶文津
2020/06/02
3760
学大伟业 国庆Day2
期望得分:30+100+0=130 实际得分:30+100+20=150 忍者钩爪 (ninja.pas/c/cpp) 【问题描述】 小Q是一名酷爱钩爪的忍者,最喜欢飞檐走壁的感觉,有一天小Q发现一个练习使用钩爪的好地方,决定在这里大显身手。 场景的天花板可以被描述为一个无穷长的数轴,初始小Q挂在原点上。数轴上有N个坐标为整数的圆环供小Q实现钩爪移动。具体操作为:小Q可以将钩爪挂到圆环上,进而荡到关于圆环坐标轴对称的位置。例如小Q在3,圆环在7,则小Q可以通过该圆环移动到11。 现在一个问题难倒了小Q,如何
attack
2018/04/11
9950
学大伟业 国庆Day2
Day5下午解题报告1
预计分数:100+60+30=190 实际分数:100+60+30=190 终于有一道无脑T1了哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
attack
2018/04/11
5870
Day4上午解题报告
预计分数:50 +0+0=50 实际分数:50+0+10=60 毒瘤出题人,T3不给暴力分 (*  ̄︿ ̄)  T1 https://www.luogu.org/problem/show?pid=T15
attack
2018/04/11
7790
Day4上午解题报告
【算法竞赛 - 搜索】Black And White
n*m的棋盘,用k种颜色(每种颜色可以染Ci次)染完,且没有十字相邻格子的颜色一致。
Livinfly
2022/10/26
3080
相关推荐
【USACO 2.2】Preface Numbering (找规律)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档