P9230 [蓝桥杯 2023 省 A] 填空问题--2024蓝桥杯冲刺省一

点击跳转例题
[蓝桥杯 2023 省 A] 填空问题 - 洛谷
一。
思路:直接暴力枚举即可,因为可以在本地跑,没有限时:答案为:4430091

#include <bits/stdc++.h>
#define int long long //(有超时风险)
#define PII pair<int,int>
#define endl '\n'
#define LL __int128

using namespace std;

const int N=2e5+10,M=1e3+10,mod=998244353,INF=0x3f3f3f3f;

int a[N],b[N],c[N],pre[N];

bool check(int x)
{
    string s=to_string(x);
    if(s.size()&1)return false;

    int sum1=0,sum2=0;
    for(int i=0;i<s.size();i++)
    {
        if(i<s.size()/2)
        {
            sum1+=s[i]-'0';
        }
        else sum2+=s[i]-'0';
    }
    return sum1==sum2;
}

signed main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int ans=0;
    for(int i=1;i<=1e8;i++)
        if(check(i))
            ans++;
    cout<<ans<<endl;

    return 0;
}

二。
思路:答案为:8335366
1.f(i,j)表示前 i 题得分为 j 的方案。
2.状态转移方程,分答对了和答错了。
3.初始化,根据定义 f(0,0)=1
4.递推。

代码:简单动态规划:

#include <bits/stdc++.h>
#define int long long //(有超时风险)
#define PII pair<int,int>
#define endl '\n'
#define LL __int128

using namespace std;

const int N=2e5+10,M=1e3+10,mod=998244353,INF=0x3f3f3f3f;

int f[40][110];

signed main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    //前i题总分为j的情况。

    f[0][0]=1;
    for(int i=1;i<=30;i++)
        for(int j=0;j<=100;j+=10)
        {
            //if对
            if(j<90)
                f[i][j+10]+=f[i-1][j];
            //else
            f[i][0]+=f[i-1][j];
        }

    int ans=0;
    //答案为8335366
    //for(int i=1;i<=30;i++)
        //ans+=f[i][70];
    //答案为:4165637   
    ans+=f[30][70];
    cout<<ans<<endl;
    return 0;
}

dfs搜索:

#include <bits/stdc++.h>
#define int long long //(有超时风险)
#define PII pair<int,int>
#define endl '\n'

using namespace std;

const int N=2e5+10,M=1e3+10;

int a[N],pre[N];

int ans=0;

void dfs(int score,int cnt)
{
    if(cnt>30||score==100)
        return;
    //加判断cnt==30,答案为:4165637,不加为:8335366
    if(score==70&&cnt==30)
        ans++;

    dfs(score+10,cnt+1);
    dfs(0,cnt+1);

}

signed main()
{
    std::ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);

    dfs(0,0);

    cout<<ans<<endl;

    return 0;
}



洛谷的答案为:
 

#include<stdio.h>
 
int main(void)
{
    char c = getchar();
    if(c == 'A')
        printf("4430091");
    else
        printf("4165637");
 
    return 0;
}

<think>嗯,用户问的是蓝桥杯Java B组还剩个月如何备赛拿到。我需要先理清用户的情况。时间只剩个月,所以需要高效复习。用户的目标是,说明有定基础,但可能还需要查漏补缺。 首先,我得考虑蓝桥杯的题型和考点。Java B组通常包括算法、数据结构、编程题等,可能涉及动态规划、搜索、图论这些高频考点。用户可能已经学过些,但需要系统复习。 接下来,用户需要的是具体可行的计划。个月的时间分阶段比较合理,比如前两周巩固基础,后两周强化和模拟。但得注意时间分配,不能太笼统。 然后,用户可能需要知道重点复习哪些内容。比如,动态规划、贪心、DFS/BFS、数论这些在蓝桥杯中的比重较大。要给出每个部分的典型例题,比如背包问题、最短路径等,帮助用户有针对性地练习。 另外,刷题策略很重要。蓝桥杯真题和模拟题是关键,尤其是近三年的题目,可能题型变化不大。用户需要反复练习,熟悉出题风格。同时,注意时间管理,编程题的时间分配可能需要模拟考试环境。 还有,代码速度和正确率的平衡。考试时可能有压力,所以平时练习要限时,培养快速解题的能力。调试技巧也很重要,比如输出中间结果帮助排查错误。 然后,资源推荐也是用户需要的。比如推荐ACwing、蓝桥云课,以及相关的算法书籍,比如《算法竞赛入门经典》。这些资源能帮助用户找到合适的练习题和理论知识。 最后,心理调整和注意事项。保持稳定的心态,避免焦虑,合理安排作息。考试策略比如先易后难,检查输入输出格式,这些细节可能影响成绩。 可能需要提醒用户避免的误区,比如只刷题不总结,或者忽视基础。要强调每天坚持练习,保持手感,同时定期复习错题。 总结下来,回答的结构应该是分阶段计划、重点考点、刷题策略、资源推荐、考试技巧和注意事项。确保每个部分清晰,给出具体例子和方法,帮助用户高效利用最后个月冲刺。</think>### 蓝桥杯Java B组备赛指南(1个月冲刺) #### 、阶段划分与时间分配(建议) 1. **第1-2周:核心算法+高频考点突破** - 每天3-4小时:算法专项训练 + 真题精解 - 每天1小时:错题复盘与模板整理 2. **第3周:全真模拟+性能优化** - 限时模拟考试(4小时/套) - 重点优化代码效率与边界处理 3. **最后1周:错题重刷+策略调整** - 高频错题二刷三刷 - 梳理易错点文档(如大数处理、输入输出陷阱) --- #### 二、重点突破方向 1. **必考算法模块** - **动态规划**(占30%+分值) ✅ 背包问题(01背包、完全背包) ✅ 线性DP(LIS/LCS/编辑距离) ✅ 区间DP(石子合并类问题) ⭐ 典型例题:$$dp[i][j] = \max(dp[i-1][j], dp[i][j-w_i] + v_i)$$ - **搜索算法** ✅ DFS/BFS(迷宫/棋盘类问题) ✅ 剪枝优化技巧 ⭐ 真题案例:2022年赛《迷宫最短路径》 - **数论与数学** ✅ 质因数分解(欧拉筛法) ✅ 快速幂与模运算 ✅ 组合数学(排列组合公式) ⭐ 公式示例:$$C(n,m) = \frac{n!}{m!(n-m)!}$$ 2. **高频数据结构** - 优先队列(堆)的应用场景 - 并查集(连通性问题- Trie树(字符串快速检索) --- #### 三、刷题策略 1. **真题必刷清单** - 近3年赛真题(2021-2023- 官方模拟赛试题(蓝桥云课) - 重点题型: ```java // 典型输入输出模板(大数据量场景) BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); ``` 2. **每日训练计划** | 时间 | 内容 | 目标 | |--------|-----------------------|---------------------------| | 上午 | 2道中等难度DP/搜索 | 掌握状态转移方程设计 | | 下午 | 1道数论+1道数据结构 | 熟练模板应用 | | 晚上 | 真题模块化拆解 | 提高综合解题速度 | --- #### 四、关键技巧 1. **代码提速技巧** - 预编译常用工具类(如快速IO) - 记忆化搜索替代暴力递归 - 空间换时间策略(预处理数组) 2. **调试与验证** - 对拍程序编写(随机数据生成器) - 边界测试用例设计(0/1/极值) - 使用`System.out.println(Arrays.toString(arr))`快速调试 --- #### 五、资源推荐 1. **学习平台** - 蓝桥云课(官方题库) - AcWing(算法基础课+提高课) - 洛谷(题单《蓝桥杯冲刺训练》) 2. **参考书籍** -算法竞赛入门经典(第2版)》重点章节 - 《挑战程序设计竞赛》第1-4章 --- #### 六、注意事项 1. **避免常见失误** - 长整型使用`long`而非`int` - 浮点数比较使用误差范围 - 文件读写注意路径设置 2. **考场策略** - 先做填空题(快速拿分) - 编程题优先选择部分分实现 - 最后15分钟检查提交状态 > **提示**:每天保持3道中等难度题的训练强度,重点记录每题的思考路径和优化过程。建议建立错题本,标注错误类型(如逻辑错误、超时、内存溢出等),最后周针对性强化。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值