入门OJ 3168【等式】
描述
有一个未完成的等式:1 2 3 4 5 6 7 8 9=N。
题目
给出整数N的具体值后,请你在2,3,4,5,6,7,8,9这8个数字的每一个前面,或插入一个运算符号“+”号,或插入一个运算符号“-”号,或不插入任何运算符号,使等式成立,并统计出能使等式成立的算式总数,若无解,则输出0。例如:取N为108时,共能写出15个不同的等式,以下就是其中的二个算式:
1+23+4+56+7+8+9=108
123-45+6+7+8+9=108
输入输出格式
输入
只有1个数,即整数N的值。-30000≤n≤1000000
输出
只有一行,该行只有1个数,表示能使等式成立的算式总数。
输入输出样例
输入样例1
108
输出样例1
15
解题思路
此题先DFS搜一遍从2到9每个数字前的符号情况,用数组存起来,最后在求值即可。
题解
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,ans=0; 4 bool flag; 5 int num[11];//0没有,1加法,2减法 6 void dfs(int sum) 7 { 8 if(sum==10)//所有的枚举完了 9 { 10 int q=0,p=0;//q是总值,p是变量值 11 for(int i=1;i<=9;)//九个数字 12 { 13 if(num[i]==1)flag=true;//true就是加,false是减 14 if(num[i]==2)flag=false; 15 p=i;//首先存入这个数 再来看他后面的符号 16 i++; 17 while(num[i]==0&&i<=9)//判断数字连着的情况,*10+数字即可 18 { 19 p=p*10+i; 20 i++; 21 } 22 if(flag)//加法就加 23 { 24 q+=p; 25 } 26 else q-=p;//减法就减 27 } 28 if(q==n)ans++; //值是正确的方案加一 29 return; 30 } 31 num[sum]=0;//搜索三种符号情况 32 dfs(sum+1); 33 num[sum]=1; 34 dfs(sum+1); 35 num[sum]=2; 36 dfs(sum+1); 37 } 38 int main() 39 { 40 cin>>n; 41 num[1]=1;//1前面一定是加,不要忘了 42 dfs(2);//从第二位前面开始 43 cout<<ans; 44 return 0; 45 }
转载于:https://www.cnblogs.com/hualian/p/11151485.html
入门OJ 3168【等式】相关推荐
- 2019.6.7 一场搜索专题的考试【including 洛谷·血色先锋队,入门OJ·兴建高铁,珠光宝气阁
这次分数还好.但全是搜索题还没上200就有点打击人了--[本狸才177QAQ 血色先锋队/血色敢死队 传送门:洛谷P1332 & 入门OJ P2259 Description 邪魔天国领主复活 ...
- begin.lydsy 入门OJ题库:1104:纯粹合数
1104: 纯粹素数 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 258 Solved: 91 [Submit][Status][Web Boar ...
- begin.lydsy 入门OJ题库:1101、1102:那些四位数、那些四位数之二
1101: 那些四位数 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 205 Solved: 160 [Submit][Status][Web Bo ...
- begin.lydsy 入门OJ题库:1104:那些N位数
1103: 那些N位数 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 231 Solved: 97 [Submit][Status][Web Boa ...
- 【bzoj 入门OJ】[NOIP 热身赛]Problem C: 星球联盟(并查集)
Problem C: 星球联盟 Time Limit: 4 Sec Memory Limit: 256 MB Submit: 57 Solved: 15 [Submit][Status][Web ...
- [Usaco2010 Hol]cowpol 奶牛政坛(入门oj Problem 5274)
第三次发题解哈.有什么表述错误的请见谅(可以提出). 题目源地址:https://www.lydsy.com/JudgeOnline/problem.php?id=1776 文章目录 题目描述 输入 ...
- [usaco2010 Oct]Soda Machine (入门oj Problem 6195 )
鬼知道我有多蒟蒻,第五次发题解了 题目原地址点此进入 呜呜呜~今天在CSDN上看了好多大佬神犇的OI退役文,百感交集,故写篇题解振奋自己. 文章目录 题目描述 输入 输出 样例输入 样例输出3 题目大 ...
- 问题 J: [入门OJ]求和 为 C(初中生请多多指教)
时间限制: 1 Sec 内存限制: 256 MB 题目描述 楠楠在网上刷题,感觉第一题:求两数的和(A+B Problem)太无聊了,于是增加了一题:求和为C的Problem,难倒了一群小朋友,哈哈 ...
- 问题 A: [入门OJ]买水果(初中生请多多指教)
在学校电脑搞的 时间限制: 1 Sec 内存限制: 256 MB 题目描述 萌萌和瞳瞳各拿 N 元去买苹果和西瓜,已知每个苹果的价格是 a. 每个西瓜的价格是 b. \n 萌萌希望 N 元买苹果全部 ...
- 入门OJ 3793: [Noip模拟题]剪草 (DP)
题目 Description 有N棵小草,编号0至N-1.奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H.在第0时刻,第i棵小草的高度是h[i],接下 ...
最新文章
- ESX虚拟机文件列表详解
- python 反爬取数据
- Vue—基础概念—实例
- mysql创建用户报错ERROR 1290
- 形容PHP程序员的语句,形容程序员的句子
- Linux的铜墙铁壁:防火墙之iptables
- 【github相关】之h264bitstream
- 恢复初始快捷键_CAD常用命令快捷键大全,47个快捷键50个CAD技巧,教你快速画图...
- z-index终结者
- Asp.net MVC 移除视图引擎(WebFormViewEngine或者RazorViewEngine)
- oracle删除临时会话表,新一代QQ群机器人
- 二项分布与伯努利试验的关系,看图说话
- Flink CDC 2.3 发布,持续优化性能,更多连接器支持增量快照,新增 Db2 支持
- 三只松鼠网络营销成功之路
- [转]设置IE背景色保护你的眼睛视力_鹤壁吧_贴吧
- Python OpenCV 物体识别
- 用c语言如何以图形方式显示家谱,数据结构_家谱管理系统
- C++ Combo Box控件用法
- 关于Titan的中文整理
- 计算机wps系统的造字程序在哪里,Winxp系统自带造字程序在哪|Winxp系统自带造字程序的使用方法...