蓝桥杯Java组省赛备考经验分享
生活随笔
收集整理的这篇文章主要介绍了
蓝桥杯Java组省赛备考经验分享
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
获奖情况:
- 第11届蓝桥杯javaB组省一,国三
- 第12届蓝桥杯javaB组省一,国二
文章目录
- 考前准备
- 省赛常考知识点(复习 + 背熟模板)
- 知识点
- 常用对象/方法
- 注意事项
- 拿分技巧
考前准备
省赛常考知识点(复习 + 背熟模板)
知识点
思维、模拟、图论(最小生成树、并查集、最短路径(spfa、floyd))、数论(最大公约数/最小公倍数、分解质因子、约数定理、欧拉筛)、搜索(暴力、dfs、bfs)、动态规划(背包类、最长上升/下降子序列、最长公共子序列)->(通过暴力求解)、二分(二分查找、二分答案)
常用对象/方法
String类、Set类、Map类、Queue类、Stack类、Math类、Arrays类Sort方法(熟记)、自定义类(排序优先级)
C++组同学可以对应到C++的这些函数
数论
1.最大公约数/最小公倍数(省赛/国赛 化简3/9-> 1/3) 熟记
2.分解质因子(省赛/国赛)
国赛C题
3.约数定理(省赛/国赛)
4.欧拉筛(O(nlogn)级别快速求质数)(常用)
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> using namespace std; const int maxn = 1e5 + 5; int prime[maxn]; bool vis[maxn]; void sieve(int n) {int cnt = 0;for(int i = 2; i <= n; i++){if(!vis[i]) //不是目前找到的素数的倍数prime[cnt++] = i; //找到素数for(int j = 0; j < cnt && i * prime[j] <= n; j++){vis[i * prime[j]] = true; //找到的素数的倍数不访问if(i % prime[j] == 0) break; //关键!!!!}} } int main() {memset(vis, false, sizeof vis);int n;cin >> n;sieve(n);int cnt = 0;for(int i = 2; i <= n; i++){if(!vis[i]){cnt++;cout << i << " ";if(cnt % 10 == 0)cout << endl;}}return 0; }注意事项
拿分技巧
因为蓝桥杯是按点得分的,所以我们即使不能AC,也要尽可能的去暴力拿分。
- 不要空题,先考虑最优算法,再考虑模拟题意暴力拿分,最后不会暴力的话可以直接printf出样例。
- 借助excel、windows自带计算器,以前省赛的很多填空题都是可以用这两者来做的。
- 由于蓝桥杯不是即时反馈答案的,所以一定要多测几组样例再提交。
- 使用快读\快输模板。
- 较难的算法短时间内不好攻克,建议训练一下暴力思维。
总结
以上是生活随笔为你收集整理的蓝桥杯Java组省赛备考经验分享的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 贫苦云主机用户的安全加固策略
- 下一篇: Java正则表达式工具类(持续更新)