修改密码

CSP-J & GESP【课程4】算法

更新中

陈远龙老师主讲 & 答疑

课程题单 - T1004

未购买 · 可先试学8节课

课程目录展开/折叠

2.3 枚举法【03】

视频时长:49:48
播放快捷键

播放/暂停:空格(或鼠标单击)      全屏:F(或鼠标双击)      退出全屏:Esc

快进10 / 30 / 60秒:方向键→ / Ctrl + 方向键→ / Shift + 方向键→

快退10 / 30 / 60秒:方向键← / Ctrl + 方向键← / Shift + 方向键←

本节课讲解配套PPT&板书:

本节课讲解到的源代码

源代码下载:2.3 枚举法【03】-源代码下载

1. 【例题2-2】P1128-火柴棒等式【NOIP 2008 提高组 T2】-1
#include <bits/stdc++.h>
using namespace std;

int cnt[] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};

int countNum(int n)
{
    if (n == 0) return 6;
    int res = 0; // res ret result中间结果 ans最终结果 
    while (n)
    {
        res += cnt[n % 10];
        n /= 10;
    }
    return res;
}

int main()
{
    int n;
    cin >> n;

    int ans = 0; // long long
    int maxa = 0, maxb = 0;
    for (int a = 0; a <= 1000; a ++)
    {
        for (int b = 0; b <= 1000; b ++)
        {
            int c = a + b;
            if (countNum(a) + countNum(b) + countNum(c) + 4 == n)
            {
                // 打印调试 
                // cout << a << ' ' << b << ' ' << c << endl;
                // maxa = max(maxa, a);
                // maxb = max(maxb, b);
                ans ++;
            }
        }
    }
    // cout << maxa << ' ' << maxb << endl;
    cout << ans;

    return 0;
} 
2. 【例题2-2】P1128-火柴棒等式【NOIP 2008 提高组 T2】-2
#include <bits/stdc++.h>
using namespace std;

int cnt[] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
int cnt2[2005];

int countNum(int n)
{
    if (n == 0) return 6;
    int res = 0; // res ret result中间结果 ans最终结果 
    while (n)
    {
        res += cnt[n % 10];
        n /= 10;
    }
    return res;
}

int main()
{
    int n;
    cin >> n;

    for (int i = 0; i <= 2000; i ++)
    {
        cnt2[i] = countNum(i);
    }
    int ans = 0; // long long
    for (int a = 0; a <= 1000; a ++)
    {
        for (int b = 0; b <= 1000; b ++)
        {
            int c = a + b;
            if (cnt2[a] + cnt2[b] + cnt2[c] + 4 == n)
            {
                ans ++;
            }
        }
    }
    cout << ans;

    return 0;
} 

本节课课后练习题

  1. 详见题单 - T1004 - CSP-J & GESP【课程4】算法 - 第2章 入门算法

本节课答疑

建议大家有问题先通过AI答疑(比如:DeepSeek 等),AI时代需要学会使用AI辅助学习

陈远龙老师视频讲解:如何使用DeepSeek进行答疑?

通过AI未能获得满意解答的,可以联系陈远龙老师答疑

目录