前言
这些题目摘录于洛谷,好题,典型的题,考察各类算法运用,可用于蓝桥杯及各类算法比赛备战,算法题目练习,提高算法能力,补充知识,提升思维。 锻炼解题思路,从学会算法模板后,会分析,用到具体的题目上。 对应题目点链接即可做。
本期涉及算法:哈希表,前缀和,背包问题,特殊枚举,字符串函数运用与细节处理,贪心算法。
题目清单
1.火柴棒等式
题目:P1149 [NOIP 2008 提高组] 火柴棒等式
解法:暴力枚举 n的最大值为 24,由于'+'和'='要用掉 4 根火柴,剩下 20 根火柴。进行估算,1111 + 1 = 1112 要用掉 25 根火柴,所以四位数以上不考虑。711 + 0 = 711,满足条件,所以枚举所有 1~1000 即可,判断是否刚好等于 n。
**细节:**因为不能有前导 0,要对 0 特殊处理。
代码:
#include <iostream>
using namespace std;
int n;
int a[] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
int calc(int x) {
if (x == 0) return 6; // 边界处理
int sum = 0;
while (x) {
sum += a[x % 10];
x /= 10;
}
return sum;
}
{
cin >> n;
ret = ;
( a = ; a <= ; a++) {
( b = ; b <= ; b++) {
c = a + b;
((a) + (b) + (c) + == n) ret++;
}
}
cout << ret << endl;
;
}


