蓝桥杯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组省赛备考经验分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贫苦云主机用户的安全加固策略
- 下一篇: 2022备赛蓝桥杯给大家的建议与提醒和资