1983 等式问题

1983 等式问题

时间限制: 1 s

空间限制: 64000 KB

题目等级 : 白银 Silver

题解

查看运行结果

题目描述 Description

有一个未完成的等式:1 2 3 4 5 6 7 8 9=N 空格(1前面没有空格)内可以填入+,-,也可以不填。 编程找出输入某个整数 N 后使等式成立的所有方案的总数。保证有解。

输入描述 Input Description

输入一个数N。

输出描述 Output Description

输出一个数。所有的方案数。

样例输入 Sample Input

108

样例输出 Sample Output

15

数据范围及提示 Data Size & Hint

分类标签 Tags 点此展开

深度优先搜索 搜索

水!

#include<cstdio>
#include<iostream>
using namespace std;
int n,sum;
void dfs(int k,int t){
    if(t==n&&k>9){
        sum++;return ;
    }
    int tmp=0;
    for(int i=k;i<=9;i++){
        tmp=tmp*10+i;
        dfs(i+1,t+tmp);
        if(k!=1)
           dfs(i+1,t-tmp);
    }
}
int main(){

    scanf("%d",&n);
    dfs(1,0);
    printf("%d\n",sum);
    return 0;
}
时间: 2024-10-29 04:20:59

1983 等式问题的相关文章

今日刷题集合

月考没考,最皮的是刷题效率低的可怕,搜索中的那些回溯用的还是很水,不如总结一下. codevs 题号:1501 1506 1842 1983 2549 2806 3143 3145 1008 1294 1295 1501 二叉树的最大宽度和高度(没加using namespace std ;会过不去编译,max.min函数封装在#include<iostream>里,所以没有using namespace std ;不行.) 1 #include<bits/stdc++.h> 2

【BZOJ 2118】 2118: 墨墨的等式 (最短路)

2118: 墨墨的等式 Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+-+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在非负整数解. Input 输入的第一行包含3个正整数,分别表示N.BMin.BMax分别表示数列的长度.B的下界.B的上界.输入的第二行包含N个整数,即数列{an}的值. Output 输出一个整数,表示有多少b可以使等式存在非负整数解. Sample Input 2 5 1

等式变换

输入一个正整数X,在下面的等式左边的数字之间添加+号.-号或空格,使得等式成立. 1 2 3 4 5 6 7 8 9 = X 比如: 12-34+5-67+89 = 5 1+23+4-5+6-7-8-9 = 5 请编写程序,统计满足输入整数的所有整数个数. 输入:       正整数,等式右边的数字 输出:       使该等式成立的个数 样例输入:5 样例输出:21(此处经大家提醒已更正) 这里我理解错了题目意思,以为是1前面也加+/-.思路没什么影响,从结果中去掉最开始一位为 -号的就行.

等式转换(熟悉一下链表,指针引用)

1 /***************************************************************************** 2 *输入一个正整数X,在下面的等式左边的数字之间添加 + 号或者 - 号,使得等式成立. 3 *1 2 3 4 5 6 7 8 9 = X 4 *比如: 5 *12 - 34 + 5 - 67 + 89 = 5 6 *1 + 23 + 4 - 5 + 6 - 7 - 8 - 9 = 5 7 *请编写程序,统计满足输入整数的所有整数个数

华为的一道机试题--等式变换

华为的一道机试题 (http://blog.csdn.net/zombie_slicer/article/details/37346025) 第三题:等式变换 输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立. 1 2 3 4 5 6 7 8 9 = X 比如: 12-34+5-67+89 = 5 1+23+4-5+6-7-8-9 = 5 请编写程序,统计满足输入整数的所有整数个数. 输入:       正整数,等式右边的数字 输出:       使该等式成立的个数 样

bzoj2118 墨墨的等式

2118: 墨墨的等式 Time Limit: 10 Sec  Memory Limit: 259 MB Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+-+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在非负整数解. Input 输入的第一行包含3个正整数,分别表示N.BMin.BMax分别表示数列的长度.B的下界.B的上界.输入的第二行包含N个整数,即数列{an}的值. Output 输出一个

【bzoj2118】 墨墨的等式

http://www.lydsy.com/JudgeOnline/problem.php?id=2118 (题目链接) 题意 给出B的取值范围[Bmin,Bmax],求方程a1x1+a2x2+…+anxn=B有多少B可以使等式存在非负整数解. Solution 问题很容易就被转化为:用a1,a2,a3,······an能组成多少个在范围[Bmin,Bmax]内的数.这是一类经典的图论问题. 我们假设a[]中最小的元素为T,可以考虑用n个数能够组成的数对T的模的情况.用dis[i]表示构成的一个数

BZOJ2118墨墨的等式[数论 最短路建模]

2118: 墨墨的等式 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1317  Solved: 504[Submit][Status][Discuss] Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在非负整数解. Input 输入的第一行包含3个正整数,分别表示N.BMin.BMax分别表示数

[再寄小读者之数学篇](2014-06-20 渐近等式中的待定常数)

计算以下渐近等式 $$\bex \int_0^1 \cfrac{x^{n-1}}{1+x}\rd x=\cfrac{a}{n}+\cfrac{b}{n^2}+o\sex{\cfrac{1}{n^2}}\quad(n\to\infty) \eex$$ 中的待定常数 $a,b$. 解答: $$\beex \bea a&=\vlm{n}n\int_0^1 \cfrac{x^{n-1}}{1+x}\rd x\\ &=\vlm{n}\int_0^1 nx^{n-1}\sex{\cfrac{1}{1+