题目描述 Description

给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示:

注意:

1. 加号与等号各自需要两根火柴棍

2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0)

3. n根火柴棍必须全部用上

输入描述 Input Description

输入文件共一行,又一个整数n(n<=24)。

输出描述 Output Description

输出文件共一行,表示能拼成的不同等式的数目。

样例输入 Sample Input

样例1:

14

样例2:

18

样例输出 Sample Output

样例1:

2

样例2:

9

数据范围及提示 Data Size & Hint

【输入输出样例1解释】

2个等式为0+1=1和1+0=1。

【输入输出样例2解释】

9个等式为:

0+4=4

0+11=11

1+10=11

2+2=4

2+7=9

4+0=4

7+2=9

10+1=11

11+0=11

代碼實現:

 #include<cstdio>
#include<iostream>
using namespace std;
int n,ans;
int s[][];
int sh[]={,,,,,,,,,};
bool v[][];
void knqk(int x,int y,int z,int en){//搜索x根火柴能擺出哪些數。(恰好用光)//x記錄用的火柴數,y記錄剩餘的火柴數,z記錄擺出的數,en恩。
if(y==){s[x][++s[x][]]=z;return;}//滿足條件的數存到s數組中。
for(int i=;i<;i++){
if(en>&&i==) continue;//沒有會出現000=0(擺多個零還是零)。
if(y>=sh[i]) knqk(x,y-sh[i],z+en*i,en*);
}
}
int main(){
scanf("%d",&n);
n-=;
for(int i=;i<=n-;i++) knqk(i,i,,);
for(int i=;i<=n-;i++)//枚舉第一個數用的火柴數。
for(int j=;j<=n-i-;j++){//枚舉第二個數用的火柴數。
int k=n-i-j;//確定第三個數用的火柴數。
for(int ii=;ii<=s[i][];ii++)//枚舉用i根火柴能擺出的數。
for(int jj=;jj<=s[j][];jj++)//枚舉用j根火柴能擺出的數。
for(int kk=;kk<=s[k][];kk++){//枚舉用k根火柴能擺出的數。
if(s[i][ii]+s[j][jj]==s[k][kk]&&!v[s[i][ii]][s[j][jj]]){//滿足條件並且此等式未出現過。
ans++;
v[s[i][ii]][s[j][jj]]=;//標記。
}
}
}
printf("%d\n",ans);
return ;
}
其實還有一種代碼較短的思路(記錄擺出某個數用的火柴數),懶得打了~

火柴棒等式(2008年NOIP全国联赛提高组)的更多相关文章

  1. 1169 传纸条 2008年NOIP全国联赛提高组 个人博客:attack.cf

    1169 传纸条 2008年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond         题目描述 Description 小渊和小轩 ...

  2. 双栈排序 2008年NOIP全国联赛提高组(二分图染色)

    双栈排序 2008年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master     题目描述 Description Tom最近在研究一个有 ...

  3. Codevs 1169 传纸条 2008年NOIP全国联赛提高组

    1169 传纸条 2008年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 小渊和小轩是好朋友也是同班 ...

  4. 笨小猴 2008年NOIP全国联赛提高组

    题目描述 Description 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设m ...

  5. Codevs 3286 火柴排队 2013年NOIP全国联赛提高组 树状数组,逆序对

    题目:http://codevs.cn/problem/3286/ 3286 火柴排队  2013年NOIP全国联赛提高组  时间限制: 1 s   空间限制: 128000 KB   题目等级 : ...

  6. Codevs 1069 关押罪犯 2010年NOIP全国联赛提高组

    1069 关押罪犯 2010年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description S 城现有两座监狱,一共 ...

  7. Codevs 1218 疫情控制 2012年NOIP全国联赛提高组

    1218 疫情控制 2012年NOIP全国联赛提高组 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description H 国有 n 个城市,这 ...

  8. Codevs 3289 花匠 2013年NOIP全国联赛提高组

    3289 花匠 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 花匠栋栋种了一排花,每株花都 ...

  9. Codevs 1173 最优贸易 2009年NOIP全国联赛提高组

    1173 最优贸易 2009年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description [问题描述] C 国有n ...

随机推荐

  1. phpexecl 的基本操作

    基本使用方法分三部分:一.引入接口 // PHPExcel_IOFactory require_once dirname(__FILE__).'/Classes/PHPExcel/IOFactory. ...

  2. Java数组去重(利用数组,不借助集合)

    今天有个同学问我说老师,Java里边数组怎么去重,在不借助List集合的情况下,最后呢我整理了一下,打算发一篇博文,希望能帮助到有用的人,大佬绕过 public static void arrUniq ...

  3. zoj3675 BFS+状态压缩

    #include <stdio.h> #include <string.h> #include <queue> using namespace std; int n ...

  4. 将子节点的所有父节点ID合并成一个字符串,并更新表

    begin for cur_dept in (select SLCATALOG_ID from T_GIS_SLCATALOG) loop UPDATE T_GIS_SLCATALOG SET PAT ...

  5. Android项目实战_手机安全卫士home界面

    # 安全卫士主页面# ###1.GridView控件 1.与ListView的使用方式差不多,也要使用数据适配器,通过设置android:numColumns控制显示几列 2.通过指定android: ...

  6. IE9的F12工具,"网络"页签,点击"开始捕获"之后,请求显示的状态是"挂起"的分析和解决

    最近一个项目,客户端使用用jQuery编写ajax请求,服务端采用struts2框架.js发送请求和action处理请求过程中,遇到一个问题.刚开始觉得问题很诡异,仔细定位很久之后才发现问题,虽然问题 ...

  7. 移动web——bootstrap栅格系统

    基本简介 1.Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列 2.栅格系统用于通过一系列的行(row)与列(c ...

  8. 【译】x86程序员手册11- 4.1系统寄存器

    4.1 Systems Registers 系统寄存器 The registers designed for use by systems programmers fall into these cl ...

  9. java浅析

    基本结构 1.以字节码的方式运行在虚拟机上,不是直接编译成机器码运行,所以性能上差于 C 但是高于 python这样的解释形语言. 笔者大学期间学习过 汇编和C,工作后使用python,对这两种语言有 ...

  10. python开发 面试题

    一.简述列表与元组的区别 答: 元组tuple与列表List相同点 元组tuple与列表List都是序列类型的容器对象,可以存放任何类型的数据.支持切片.迭代等操作. 元组tuple与列表List区别 ...