修改密码

全面备考2025 CSP-J 初赛 & 复赛直播课

更新中

陈远龙老师主讲 & 答疑

课程题单 - T1005

未购买 · 可先试学4节课

课程目录展开/折叠

第2课 CSP-J复赛试题分析精讲

视频时长:01:07:29
播放快捷键

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

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

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

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

本节课讲解到的源代码

源代码下载:第2课 CSP-J复赛试题分析精讲-源代码下载

1. P1142 - 数字游戏【CSP-J 2019 入门级 T1】-1 - C++ string字符串
#include <bits/stdc++.h>
using namespace std;

int main()
{
    // freopen("number.in", "r", stdin);
    // freopen("number.out", "w", stdout);
    string s;
    cin >> s;
    int ans = 0;
    for (int i = 0; i < s.size(); i ++)
    {
        if (s[i] == '1') ans ++;
    }
    cout << ans;

    return 0;
} 
2. P1142 - 数字游戏【CSP-J 2019 入门级 T1】-2 - C语言风格字符串
#include <bits/stdc++.h>
using namespace std;

int main()
{
    // freopen("number.in", "r", stdin);
    // freopen("number.out", "w", stdout);
    char s[20];
    cin >> s;
    int ans = 0;
    for (int i = 0; s[i]; i ++)
    {
        if (s[i] == '1') ans ++;
    }
    cout << ans;

    return 0;
} 
3. P1194 - 扑克牌【CSP-J 2024 入门级 T1】-1 - set去重
#include <bits/stdc++.h>
using namespace std;

int main()
{
    // freopen("poker.in", "r", stdin);
    // freopen("poker.out", "w", stdout);
    int n;
    cin >> n;
    set<string> st; // 去重的容器 
    for (int i = 0; i < n; i ++)
    {
        string s;
        cin >> s;
        st.insert(s);
    }
    cout << 52 - st.size();

    return 0;
} 
4. P1194 - 扑克牌【CSP-J 2024 入门级 T1】-2 - map去重
#include <bits/stdc++.h>
using namespace std;

map<string, int> mp; // ST => 2
int main()
{
    // freopen("poker.in", "r", stdin);
    // freopen("poker.out", "w", stdout);
    int n;
    cin >> n;
    for (int i = 0; i < n; i ++)
    {
        string s;
        cin >> s;
        if (mp.count(s) != 1)
            mp[s] ++;
    }
    cout << 52 - mp.size();

    return 0;
} 
5. P1194 - 扑克牌【CSP-J 2024 入门级 T1】-3 - 手动枚举去重
#include <bits/stdc++.h>
using namespace std;

vector<string> v;
int main()
{
    // freopen("poker.in", "r", stdin);
    // freopen("poker.out", "w", stdout);
    int n;
    cin >> n;
    // 手动去重 枚举 
    for (int i = 0; i < n; i ++)
    {
        string s;
        cin >> s;
        bool flag = true; // 可以放 
        for (string t : v)
        {
            if (t == s)
            {
                flag = false;
                break;
            }
        }
        if (flag)
        {
            v.push_back(s);
        }
    }
    cout << 52 - v.size();

    return 0;
} 

本节课答疑

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

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

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

目录