
信息學(xué)競(jìng)賽圈的九月注定是被CSP-J刷屏的一個(gè)月。2025年的CSP-J初賽再次毫無(wú)懸念地成為編程教育圈、家長(zhǎng)群和各大OJ討論區(qū)的熱門話題。作為初中生信息學(xué)競(jìng)賽的“第一道門檻”這套題既承擔(dān)著篩選功能也承擔(dān)著風(fēng)向標(biāo)功能——命題人想看到什么樣的選手、未來(lái)復(fù)賽會(huì)往哪個(gè)方向出題全藏在這張卷子里。我今年帶的學(xué)生考完出來(lái)反應(yīng)兩極分化得很明顯有人說(shuō)“穩(wěn)了”選擇題基本秒殺也有人出來(lái)就蔫了說(shuō)閱讀程序題完全看不懂在干什么。等估分結(jié)果出來(lái)差距基本都拉在閱讀程序題和完善程序題上。這幾乎是每年初賽的保留節(jié)目但2025年的題目在信息量密度和算法思維深度上確實(shí)又往上走了一個(gè)臺(tái)階。這篇文章我會(huì)結(jié)合2025年CSP-J初賽的整體命題趨勢(shì)把各個(gè)題型的核心考點(diǎn)、典型真題的解題思路、常見(jiàn)的丟分陷阱全部拆開(kāi)講清楚。無(wú)論你是剛?cè)腴T準(zhǔn)備明年參賽的選手還是已經(jīng)考完正在準(zhǔn)備復(fù)賽這篇內(nèi)容都能幫你把初賽的底層邏輯理順。1. 2025年CSP-J初賽整體格局與關(guān)鍵變化1.1 為什么這場(chǎng)初賽比往年更值得復(fù)盤先說(shuō)一個(gè)最直觀的感受2025年的初賽記憶性題目的占比進(jìn)一步壓縮理解性題目的占比進(jìn)一步提高。前幾年的卷子里還有一些“背下來(lái)就能得分”的題目比如某個(gè)排序算法的平均時(shí)間復(fù)雜度是多少、某條指令對(duì)應(yīng)的二進(jìn)制編碼是什么。但2025年的選擇題里這類題目幾乎絕跡了取而代之的是大量“給你一段代碼問(wèn)你輸出是什么”以及“給你一個(gè)場(chǎng)景讓你判斷用什么數(shù)據(jù)結(jié)構(gòu)更合適”的題目。這意味著什么意味著靠考前突擊背知識(shí)點(diǎn)的復(fù)習(xí)策略已經(jīng)徹底失效了。命題組釋放的信號(hào)非常明確初賽不再只是復(fù)賽的“資格賽”它本身就是一場(chǎng)獨(dú)立的、考察真實(shí)編程素養(yǎng)的考試。你光知道棧是“后進(jìn)先出”沒(méi)用你得能在代碼里認(rèn)出棧的壓入和彈出發(fā)生在哪里你光知道快速排序是O(n log n)沒(méi)用你得能手動(dòng)模擬一趟劃分過(guò)程算出某個(gè)特定序列經(jīng)過(guò)一次Partition之后長(zhǎng)什么樣。從參賽人數(shù)來(lái)看2025年CSP-J的報(bào)名規(guī)模又創(chuàng)了新高。我所在的省份今年初賽考點(diǎn)增加了兩個(gè)依然有大批選手被調(diào)劑到較遠(yuǎn)的考場(chǎng)。競(jìng)爭(zhēng)烈度逐年上升初賽分?jǐn)?shù)線也隨之水漲船高。很多省份的晉級(jí)分?jǐn)?shù)線已經(jīng)逼近70分這意味著你不僅要做對(duì)大部分選擇題閱讀程序題和完善程序題也不能有大的閃失。在這種背景下靠“感覺(jué)”做題是完全行不通的每一類題型都需要建立系統(tǒng)性的解題框架。1.2 考試流程與時(shí)間線復(fù)盤按照CCF往年的節(jié)奏CSP-J的報(bào)名通常在暑假開(kāi)啟初賽安排在9月的第三個(gè)周末。2025年也不例外??荚囆问揭廊皇枪P試時(shí)長(zhǎng)兩小時(shí)滿分100分。題型結(jié)構(gòu)保持穩(wěn)定單項(xiàng)選擇15題每題2分共30分閱讀程序題3大題每題約12分共40分左右完善程序題2大題每題約15分共30分左右。不過(guò)具體分值分布每年會(huì)微調(diào)2025年的總體結(jié)構(gòu)是選擇題30分閱讀程序題40分完善程序題30分。兩小時(shí)的時(shí)間分配非常關(guān)鍵。根據(jù)我這些年的觀察選擇題部分建議控制在25分鐘內(nèi)。很多選手喜歡在選擇題上反復(fù)糾結(jié)總覺(jué)得再想想就能想出來(lái)。實(shí)際上選擇題的分值就2分一道與其耗時(shí)4分鐘去磨一道不確定的題不如先跳過(guò)把時(shí)間留給后面的程序大題。閱讀程序題才是真正決定你能不能晉級(jí)的核心建議分配55到60分鐘。完善程序題雖然分值高但很多空格的提示信息其實(shí)藏在上下文里你一旦理解了算法的整體框架填起來(lái)反而比閱讀程序題更順。最怕的就是時(shí)間分配倒掛——選擇題磨了40分鐘導(dǎo)致后面兩大題只能草草收?qǐng)鲞@是每年最常見(jiàn)的戰(zhàn)略性失誤。2. 初賽題型深度拆解每一分都丟在哪里2.1 單項(xiàng)選擇題從“記憶題”到“閱讀題”的轉(zhuǎn)變2025年的選擇題我拿到手的第一反應(yīng)是題干變長(zhǎng)了。以前的題目一句話就能說(shuō)清楚現(xiàn)在的題面往往給你一小段背景描述再給一段代碼片段或者一個(gè)數(shù)據(jù)結(jié)構(gòu)的操作序列然后才問(wèn)輸出結(jié)果或者算法復(fù)雜度。這對(duì)閱讀速度和信息提取能力提出了更高的要求。舉一個(gè)典型的例子今年考了一道關(guān)于異或運(yùn)算的選擇題本質(zhì)上就是考察a ^ a 0、a ^ 0 a這兩個(gè)基本性質(zhì)。但命題人沒(méi)有直接問(wèn)“異或運(yùn)算的性質(zhì)是什么”而是給了一段循環(huán)代碼讓你判斷最終輸出結(jié)果。如果你對(duì)異或運(yùn)算的性質(zhì)足夠敏感一眼就能看出來(lái)很多變量是來(lái)干擾你的真正參與運(yùn)算的部分可以化簡(jiǎn)。這就是現(xiàn)在選擇題的命題風(fēng)格——知識(shí)點(diǎn)還是那個(gè)知識(shí)點(diǎn)但包裝換了你認(rèn)不出來(lái)就是丟分。還有一個(gè)明顯的趨勢(shì)是數(shù)學(xué)類題目在增加。整除、取余、質(zhì)數(shù)判斷、最大公約數(shù)、排列組合這些內(nèi)容在2025年的選擇題里至少出現(xiàn)了4到5道。信息學(xué)競(jìng)賽的底層是數(shù)學(xué)初賽也正在越來(lái)越重視這一塊。備考選擇題不能只盯著編程語(yǔ)言語(yǔ)法和數(shù)據(jù)結(jié)構(gòu)數(shù)學(xué)基礎(chǔ)必須同步補(bǔ)強(qiáng)尤其是數(shù)論入門里的同余、整除、質(zhì)因數(shù)分解這些概念。2.2 閱讀程序題2025年最核心的拉分項(xiàng)閱讀程序題是很多選手的噩夢(mèng)但它其實(shí)是三種題型里最有規(guī)律可循的。2025年的三篇閱讀程序題一篇是純模擬題考察你對(duì)循環(huán)和數(shù)組下標(biāo)的敏感度一篇是遞歸與二叉樹(shù)遍歷結(jié)合需要你手動(dòng)模擬遞歸過(guò)程還有一篇涉及貪心策略考察你對(duì)算法正確性的理解。先說(shuō)純模擬題。這種題沒(méi)有高深的算法就是老老實(shí)實(shí)順著代碼走一遍。但它有一個(gè)致命的陷阱代碼里通常會(huì)有很多“障眼法”變量——有些變量從頭到尾沒(méi)被使用有些變量只在某個(gè)分支里出現(xiàn)。如果你逐行跟蹤所有變量很快就會(huì)亂掉。我的建議是拿到代碼先不急著模擬花1分鐘做兩件事第一找出程序的主要輸入是什么、主要輸出是什么第二忽略掉對(duì)輸出沒(méi)有貢獻(xiàn)的變量。這兩步做完再開(kāi)始跟蹤關(guān)鍵變量的變化軌跡效率會(huì)高很多。再說(shuō)遞歸與二叉樹(shù)遍歷。2025年考到的這個(gè)題本質(zhì)上是給你一個(gè)二叉樹(shù)的前序遍歷和中序遍歷要求你推出后序遍歷。這個(gè)知識(shí)點(diǎn)在復(fù)賽里也經(jīng)常出現(xiàn)屬于必須掌握的基礎(chǔ)中的基礎(chǔ)。做題時(shí)我建議直接畫(huà)出遞歸展開(kāi)圖把每一層遞歸的輸入?yún)^(qū)間寫(xiě)清楚左子樹(shù)的范圍、右子樹(shù)的范圍、根節(jié)點(diǎn)的位置一目了然。很多選手丟分不是因?yàn)椴欢f歸而是因?yàn)橹辉谀X子里模擬遞歸沒(méi)有在草稿紙上畫(huà)出來(lái)結(jié)果繞暈了。初賽是筆試草稿紙就是你的武器用好了能解決70%的思維混亂問(wèn)題。最后是貪心策略題。這類題不會(huì)要求你證明貪心正確性但會(huì)問(wèn)你“如果將某個(gè)判斷條件改成……結(jié)果會(huì)怎樣”或者“這段代碼實(shí)現(xiàn)的是什么功能”。想在短時(shí)間內(nèi)讀懂一個(gè)貪心算法的正確性最有效的方法是小數(shù)據(jù)量代入。把自己當(dāng)作測(cè)試用例準(zhǔn)備一組極端的輸入比如全0序列、全1序列、遞增序列、遞減序列手動(dòng)走一遍代碼看它的行為是否符合你的直覺(jué)。這比盯著代碼干想要可靠得多。2.3 完善程序題填空背后的算法思維完善程序題給你一段寫(xiě)了一半的代碼讓你補(bǔ)全空缺的部分。2025年的兩道完善程序題一題是排序算法的變種——基于歸并思想求逆序?qū)?shù)量另一題是圖論中的連通性問(wèn)題本質(zhì)上是對(duì)并查集應(yīng)用的考察。很多選手有個(gè)誤區(qū)覺(jué)得完善程序題是“玄學(xué)”只能靠蒙。其實(shí)完全不是。完善程序題通常有非常明顯的線索可循。第一觀察空格的上下文看這個(gè)變量在之前是否出現(xiàn)過(guò)如果出現(xiàn)過(guò)那這個(gè)空格大概率是更新或使用這個(gè)變量。第二看循環(huán)的邊界條件這是最容易設(shè)置陷阱的地方也是命題人最想考察的地方——你是否理解循環(huán)不變式。第三看函數(shù)的返回值倒推最后一個(gè)空格通常填什么。以逆序?qū)@個(gè)題來(lái)說(shuō)它的核心思想是歸并排序的過(guò)程中當(dāng)右邊的數(shù)被放入臨時(shí)數(shù)組時(shí)左邊剩余數(shù)的個(gè)數(shù)就是當(dāng)前這個(gè)數(shù)能形成的逆序?qū)?shù)量。理解了這個(gè)核心邏輯空格就好填了——無(wú)非就是累加計(jì)數(shù)器以及確定遞歸調(diào)用的邊界。但如果你不理解這個(gè)算法看到那一堆遞歸調(diào)用和左右指針的移動(dòng)就會(huì)徹底懵掉。所以完善程序題拼的不是“語(yǔ)法填空”而是你對(duì)整個(gè)算法流程的宏觀理解。考前刷題時(shí)遇到一道完善程序題不要直接看答案先自己把算法的作用是什么、用什么數(shù)據(jù)結(jié)構(gòu)、時(shí)間復(fù)雜度是多少這三點(diǎn)寫(xiě)下來(lái)再去做題正確率會(huì)有質(zhì)的提升。3. 2025年核心知識(shí)點(diǎn)精講與真題解析示范3.1 進(jìn)制轉(zhuǎn)換與位運(yùn)算必考且容易出錯(cuò)的考點(diǎn)進(jìn)制轉(zhuǎn)換和位運(yùn)算是CSP-J初賽每年必考的內(nèi)容2025年同樣沒(méi)有缺席。這個(gè)知識(shí)點(diǎn)為什么重要因?yàn)橛?jì)算機(jī)底層就是用二進(jìn)制工作的理解進(jìn)制轉(zhuǎn)換和位運(yùn)算就是理解計(jì)算機(jī)的思維模式。先看進(jìn)制轉(zhuǎn)換。二進(jìn)制、八進(jìn)制、十六進(jìn)制之間的互轉(zhuǎn)可以用一個(gè)“分組法”快速完成二進(jìn)制轉(zhuǎn)八進(jìn)制從右往左每三位一組二進(jìn)制轉(zhuǎn)十六進(jìn)制從右往左每四位一組。做題時(shí)我建議一律先把非十進(jìn)制的數(shù)轉(zhuǎn)成二進(jìn)制再在二進(jìn)制層面做運(yùn)算最后再轉(zhuǎn)回目標(biāo)進(jìn)制。這種做法的好處是能統(tǒng)一處理不容易出錯(cuò)。舉個(gè)例子十六進(jìn)制的0xF5轉(zhuǎn)二進(jìn)制每位十六進(jìn)制對(duì)應(yīng)四位二進(jìn)制F對(duì)應(yīng)11115對(duì)應(yīng)0101所以結(jié)果是11110101。這個(gè)過(guò)程只要熟記0到F對(duì)應(yīng)的四位二進(jìn)制就夠了。再講位運(yùn)算。位運(yùn)算總共六種與、或|、異或^、取反~、左移、右移。2025年熱搜里那個(gè)“異或和”的討論度很高就是因?yàn)檫@類問(wèn)題又經(jīng)典又容易出錯(cuò)。異或運(yùn)算的本質(zhì)是“無(wú)進(jìn)位加法”兩個(gè)關(guān)鍵性質(zhì)是歸零律a ^ a 0和恒等律a ^ 0 a。還有一個(gè)常用技巧交換兩個(gè)變量a和b不用臨時(shí)變量三步異或搞定——a a ^ b; b a ^ b; a a ^ b。這個(gè)技巧在閱讀程序題里出現(xiàn)過(guò)不止一次認(rèn)不出來(lái)就硬算浪費(fèi)大量時(shí)間。左移右移也要重點(diǎn)掌握。左移n位相當(dāng)于乘以2的n次方右移n位相當(dāng)于整除2的n次方。特別注意右移有兩種邏輯右移高位補(bǔ)0和算術(shù)右移高位補(bǔ)符號(hào)位。C里對(duì)無(wú)符號(hào)整數(shù)做右移是邏輯右移對(duì)有符號(hào)整數(shù)做右移大多數(shù)編譯器實(shí)現(xiàn)的是算術(shù)右移。初賽題目有時(shí)候會(huì)在這個(gè)細(xì)節(jié)上做文章如果你沒(méi)注意到變量類型是int還是unsigned int很容易判斷錯(cuò)輸出結(jié)果。3.2 鏈表、棧與隊(duì)列數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)的經(jīng)典考法數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)是初賽的另一個(gè)必考板塊。2025年的題目里鏈表和棧隊(duì)列相關(guān)的內(nèi)容至少考了4處分散在選擇題和閱讀程序題中。樹(shù)和圖的定義、遍歷方式也都有涉及。鏈表這個(gè)考點(diǎn)最常見(jiàn)的就是給你一段插入、刪除節(jié)點(diǎn)的代碼問(wèn)你某個(gè)節(jié)點(diǎn)的指針指向哪里。做這類題有一個(gè)笨但極有效的方法畫(huà)圖。把鏈表畫(huà)成一排方框用箭頭表示指針每次操作都真實(shí)地畫(huà)出新的箭頭方向。只要圖畫(huà)清楚了指針操作怎么變都騙不了你。最典型的坑是刪除一個(gè)節(jié)點(diǎn)后你手里還握著指向這個(gè)節(jié)點(diǎn)的指針這時(shí)候再訪問(wèn)它的后續(xù)節(jié)點(diǎn)就會(huì)出問(wèn)題。2025年有一道選擇題就是考察這一點(diǎn)選項(xiàng)設(shè)置得很有迷惑性不畫(huà)圖的人很容易選錯(cuò)。棧和隊(duì)列的概念本身很簡(jiǎn)單但初賽喜歡把它們藏在表達(dá)式求值、括號(hào)匹配、DFS和BFS這些場(chǎng)景里來(lái)考。比如中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式這個(gè)知識(shí)點(diǎn)是棧的經(jīng)典應(yīng)用SPJ初賽反復(fù)考過(guò)。核心規(guī)則是操作數(shù)直接輸出遇到運(yùn)算符如果棧頂運(yùn)算符優(yōu)先級(jí)不低于當(dāng)前運(yùn)算符就彈出左括號(hào)直接入棧右括號(hào)則彈出直到左括號(hào)。把這個(gè)規(guī)則寫(xiě)成順口溜貼在錯(cuò)題本上比臨時(shí)推導(dǎo)要節(jié)省大量時(shí)間。2025年還考了二叉樹(shù)的性質(zhì)在完全二叉樹(shù)中如果節(jié)點(diǎn)總數(shù)為n那么葉子節(jié)點(diǎn)數(shù)是多少。這類題可以直接套公式——完全二叉樹(shù)葉子節(jié)點(diǎn)數(shù)等于n/2向上取整當(dāng)n為奇數(shù)時(shí)葉子比度為2的節(jié)點(diǎn)多1。但更穩(wěn)妥的做法是畫(huà)一棵小規(guī)模的完全二叉樹(shù)找到規(guī)律再推廣到大規(guī)模。信息學(xué)競(jìng)賽考的不是公式記憶而是規(guī)律推導(dǎo)能力這個(gè)思維習(xí)慣從初賽就要開(kāi)始建立。3.3 搜索與圖論入門2025年命題的新熱點(diǎn)搜索和圖論在以前的CSP-J初賽里占比不算高但2025年的卷子里明顯加強(qiáng)了。DFS深度優(yōu)先搜索和BFS廣度優(yōu)先搜索的應(yīng)用場(chǎng)景辨析、圖的鄰接矩陣和鄰接表的存儲(chǔ)方式、最短路徑的基本思想都出現(xiàn)在了題目中。DFS和BFS的區(qū)別我習(xí)慣用一個(gè)生活化的類比來(lái)解釋DFS就像走迷宮時(shí)“一條道走到黑走不通再回頭”BFS就像水波擴(kuò)散“一圈一圈往外擴(kuò)”。前者是棧的思想適合用來(lái)判斷連通性、找所有解后者是隊(duì)列的思想適合用來(lái)求最短路徑、分析層次結(jié)構(gòu)。2025年的閱讀程序題里有一道就是在一張網(wǎng)格圖上做搜索問(wèn)的是訪問(wèn)順序。這種題只要你在草稿紙上把網(wǎng)格畫(huà)出來(lái)用箭頭標(biāo)出每個(gè)節(jié)點(diǎn)的訪問(wèn)序號(hào)多慢都不會(huì)錯(cuò)。圖論入門里最??嫉倪€有歐拉路徑和歐拉回路。2025年的熱搜詞里出現(xiàn)了“多邊形”我估計(jì)這和一道關(guān)于一筆畫(huà)的題目有關(guān)——給一個(gè)多邊形的邊和頂點(diǎn)問(wèn)能否一筆畫(huà)完。一筆畫(huà)問(wèn)題的判定規(guī)則非常經(jīng)典能夠一筆畫(huà)完的圖要么所有頂點(diǎn)的度數(shù)都是偶數(shù)存在歐拉回路要么只有兩個(gè)頂點(diǎn)的度數(shù)是奇數(shù)存在歐拉路徑。這個(gè)知識(shí)點(diǎn)極度適合出成初賽題目因?yàn)樗呐卸ㄒ?guī)則簡(jiǎn)單但需要你理解“度”的概念還需要你認(rèn)真數(shù)清楚每個(gè)頂點(diǎn)的邊數(shù)。3.4 動(dòng)態(tài)規(guī)劃基礎(chǔ)突破壓軸題的關(guān)鍵一聽(tīng)到動(dòng)態(tài)規(guī)劃很多初賽選手就覺(jué)得“這是復(fù)賽才考的東西初賽不用管”。這個(gè)觀念在2025年之后最好改一改了。近兩年的完善程序題連續(xù)出現(xiàn)了動(dòng)態(tài)規(guī)劃背景的題目比如背包問(wèn)題、最長(zhǎng)上升子序列。2025年的完善程序題雖然沒(méi)有直接以“DP”命名但那個(gè)求逆序?qū)Φ念}其歸并排序的思路和DP一樣需要深刻理解子問(wèn)題的分解。動(dòng)態(tài)規(guī)劃最重要的概念就是狀態(tài)和轉(zhuǎn)移方程。以01背包為例狀態(tài)dp[i][j]表示“從前i個(gè)物品中選總重量不超過(guò)j的最大價(jià)值”轉(zhuǎn)移方程是dp[i][j] max(dp[i-1][j], dp[i-1][j-w[i]] v[i])意思是當(dāng)前物品要么不選要么選了之后加上它占用的重量和產(chǎn)生的價(jià)值。初賽里考動(dòng)態(tài)規(guī)劃不會(huì)讓你現(xiàn)場(chǎng)設(shè)計(jì)一個(gè)很難的轉(zhuǎn)移方程更多是讓你看懂代碼里的dp數(shù)組是怎么滾動(dòng)的以及某個(gè)邊界條件為什么這樣寫(xiě)。這里有一個(gè)備考技巧把常見(jiàn)的DP模型做成一張速查表包括背包問(wèn)題01背包、完全背包、多重背包、最長(zhǎng)上升子序列LIS、最長(zhǎng)公共子序列LCS、區(qū)間DP石子合并。每個(gè)模型記清楚狀態(tài)定義、轉(zhuǎn)移方程、初始化和最終答案的位置。初賽考到DP幾乎逃不出這幾個(gè)模型。2025年如果沒(méi)考到你2026年大概率會(huì)輪到。4. 2025年考生易錯(cuò)點(diǎn)與常見(jiàn)問(wèn)題排查4.1 六個(gè)最典型的失分場(chǎng)景我每年都會(huì)統(tǒng)計(jì)學(xué)生的估分和實(shí)際出分之間的差距。2025年幾個(gè)典型的失分場(chǎng)景值得所有人引以為戒。第一選擇題讀題不完整。今年的選擇題題干很長(zhǎng)有些選手只看了前半句就開(kāi)始分析選項(xiàng)結(jié)果忽略了后半句的“以下說(shuō)法不正確的是”。一個(gè)“不”字讓無(wú)數(shù)人栽了跟頭。對(duì)策是把題干里的“不正確”“錯(cuò)誤”“不可能”這些字眼圈出來(lái)再動(dòng)筆。第二模擬程序時(shí)混淆變量名。i、j、k滿天飛跟蹤到后面自己都不知道哪個(gè)是哪個(gè)。建議在草稿紙上直接按代碼里的變量名建一張“變量追蹤表”每執(zhí)行一行就更新一次雖然慢但準(zhǔn)確率極高。在初賽里慢就是快。第三遞歸題不畫(huà)棧??吹竭f歸函數(shù)就頭皮發(fā)麻在腦子里硬繞。其實(shí)遞歸的本質(zhì)就是函數(shù)調(diào)用棧的壓入和彈出把每次調(diào)用的參數(shù)和返回值用“棧幀”的形式寫(xiě)在紙上一層一層推就不會(huì)亂。這個(gè)方法在復(fù)試機(jī)考里同樣適用早學(xué)會(huì)早受益。第四二進(jìn)制和十進(jìn)制轉(zhuǎn)換時(shí)粗心。這類題本來(lái)是最容易得分的但大量選手在“負(fù)數(shù)”“補(bǔ)碼”這些概念上出錯(cuò)。要記住在計(jì)算機(jī)里負(fù)數(shù)用補(bǔ)碼表示正數(shù)的補(bǔ)碼等于原碼負(fù)數(shù)的補(bǔ)碼等于原碼取反加一。2025年有一道選擇題就是考察-1在int型里的二進(jìn)制表示答案是全1。別看這個(gè)知識(shí)點(diǎn)基礎(chǔ)錯(cuò)的人真不少。第五完善程序題不讀注釋。很多完善程序題的開(kāi)頭會(huì)有一大段中文注釋描述這個(gè)程序是干什么的。這些注釋不是廢話是命題人給你的“說(shuō)明書(shū)”。不讀說(shuō)明書(shū)的選手相當(dāng)于蒙著眼睛做實(shí)驗(yàn)白白浪費(fèi)了最關(guān)鍵的提示信息。第六時(shí)間分配失衡。前面反復(fù)強(qiáng)調(diào)選擇題最多花25到30分鐘。如果到開(kāi)考后40分鐘你還在選擇題里掙扎該果斷放棄了。把時(shí)間留給閱讀程序題兩分兩分地?fù)覆蝗缣ぬ?shí)實(shí)把大題做全對(duì)。4.2 考前30天的復(fù)習(xí)節(jié)奏建議初賽備考不需要一年到頭都繃著但考前30天是黃金沖刺期。我建議按照三個(gè)“10天”來(lái)劃分節(jié)奏。前10天回歸基礎(chǔ)梳理知識(shí)框架。把進(jìn)制轉(zhuǎn)換、位運(yùn)算、鏈表?xiàng)j?duì)列、二叉樹(shù)、排序算法的時(shí)間復(fù)雜度、搜索基礎(chǔ)、動(dòng)態(tài)規(guī)劃基礎(chǔ)這些考綱要求的知識(shí)點(diǎn)全部過(guò)一遍確保沒(méi)有盲區(qū)。這個(gè)階段可以用知識(shí)點(diǎn)大綱自測(cè)看到某個(gè)概念能不能在三句話內(nèi)說(shuō)出它的定義、適用場(chǎng)景和復(fù)雜度說(shuō)不上來(lái)就回去復(fù)習(xí)。中間10天集中刷真題重點(diǎn)是近三年的CSP-J初賽真題。刷的時(shí)候要嚴(yán)格按照考試時(shí)間來(lái)兩小時(shí)不間斷模擬真實(shí)考場(chǎng)的緊張感。刷完對(duì)完答案做錯(cuò)題分析把每道錯(cuò)題所屬的知識(shí)點(diǎn)寫(xiě)在該題旁邊。你會(huì)發(fā)現(xiàn)錯(cuò)題高度集中在少數(shù)幾個(gè)知識(shí)點(diǎn)上針對(duì)性攻克這一個(gè)點(diǎn)比盲目刷十套新題都管用。最后10天回歸錯(cuò)題本和復(fù)雜度速查表。不建議再做新題了把之前的錯(cuò)題重做一遍確保每道題都不再出錯(cuò)。同時(shí)把??嫉臅r(shí)間復(fù)雜度——冒泡O(n2)、快排平均O(n log n)最壞O(n2)、歸并穩(wěn)定O(n log n)、堆排O(n log n)、二分查找O(log n)——背到滾瓜爛熟。這些內(nèi)容不需要思考但每年都有人在這里丟分丟了實(shí)在可惜。5. 關(guān)于2025年熱題“異或和”與“多邊形”的延展思考今年的熱詞里“異或和”和“多邊形”占據(jù)了話題中心。我特意把這兩類題拿出來(lái)單獨(dú)說(shuō)因?yàn)樗鼈兇砹顺踬惷}的兩個(gè)重要方向位運(yùn)算的深層應(yīng)用和計(jì)算幾何的入門化?!爱惢蚝汀眴?wèn)題表面上考的是異或運(yùn)算實(shí)際考的是前綴和思想的拓展。對(duì)于一個(gè)數(shù)組a[1]到a[n]如果要求任意區(qū)間[l, r]的異或和可以預(yù)處理一個(gè)前綴異或數(shù)組pre[i] a[1] ^ a[2] ^ ... ^ a[i]那么區(qū)間[l, r]的異或和就等于pre[r] ^ pre[l-1]。這個(gè)轉(zhuǎn)化非常巧妙因?yàn)楫惢蜻\(yùn)算正好滿足逆運(yùn)算等于自身的性質(zhì)a ^ b ^ b a。選手如果只把異或當(dāng)作“位運(yùn)算的一種”來(lái)記而沒(méi)想過(guò)它能和前綴思想結(jié)合遇到這類題就會(huì)無(wú)從下手。這提醒我們初賽不會(huì)再直接考你某個(gè)運(yùn)算符的功能而是考你能否把運(yùn)算符的性質(zhì)用于算法設(shè)計(jì)?!岸噙呅巍毕嚓P(guān)的問(wèn)題今年更多以計(jì)算幾何的基礎(chǔ)概念出現(xiàn)比如點(diǎn)在多邊形內(nèi)還是在多邊形外、多邊形的面積怎么算。CSP-J不會(huì)要求你掌握復(fù)雜的計(jì)算幾何算法但你需要理解最基本的原理判斷點(diǎn)是否在多邊形內(nèi)可以用射線法——從該點(diǎn)向右引一條水平射線如果與多邊形邊的交點(diǎn)個(gè)數(shù)為奇數(shù)則點(diǎn)在多邊形內(nèi)否則在多邊形外。這個(gè)原理的直觀理解是物理學(xué)里的“進(jìn)出平衡”穿過(guò)一條邊就相當(dāng)于從外部進(jìn)入了多邊形再穿一條邊就出來(lái)了奇數(shù)個(gè)交點(diǎn)意味著最后停留在多邊形內(nèi)部。這類題趣味性強(qiáng)、區(qū)分度高預(yù)計(jì)明年還會(huì)以不同形式出現(xiàn)。6. 初賽之后復(fù)賽銜接與長(zhǎng)期規(guī)劃初賽只是第一關(guān)每年都會(huì)有很多選手以不錯(cuò)的成績(jī)晉級(jí)復(fù)賽卻在機(jī)考環(huán)境下發(fā)揮失常。總結(jié)下來(lái)最大的原因只有一個(gè)平時(shí)在OJ上刷題時(shí)太依賴“試錯(cuò)”沒(méi)有養(yǎng)成一次寫(xiě)對(duì)的習(xí)慣。初賽是筆試答錯(cuò)了還能改復(fù)賽是機(jī)考一次提交錯(cuò)誤就要增加罰時(shí)。從初賽結(jié)束后到復(fù)賽開(kāi)考前建議把重心從“刷題量”切換到“代碼規(guī)范”上。具體怎么做第一強(qiáng)迫自己在沒(méi)有樣例輸出的情況下只憑讀題和手算構(gòu)造數(shù)據(jù)來(lái)驗(yàn)證思路是否正確。第二注意變量類型。復(fù)賽的常見(jiàn)失分點(diǎn)就是十年沒(méi)變過(guò)的int溢出——n和m明明乘起來(lái)會(huì)超過(guò)21億你還用int存結(jié)果爆掉以后輸出一個(gè)負(fù)數(shù)。開(kāi)數(shù)組前先算一遍數(shù)據(jù)范圍這是復(fù)賽拿分的第一原則。第三學(xué)好文件和重定向操作。freopen用錯(cuò)一次整道題0分這比不會(huì)做還虧。我個(gè)人的習(xí)慣是每道題寫(xiě)完后必須做三件事看一遍數(shù)據(jù)范圍算一遍空間是否超限重新讀一遍題目確認(rèn)輸出格式尤其是要不要輸出空格和換行用邊界數(shù)據(jù)測(cè)試——n0、n1、最大值。這三件事熟練之后每次只需要兩分鐘但能把低級(jí)失誤率從30%壓到5%以內(nèi)。最后說(shuō)一點(diǎn)個(gè)人感受。信息學(xué)競(jìng)賽這條路初賽是第一道篩子。它篩掉的不是“不懂算法的人”而是“沒(méi)有耐心讀懂題意的人”。我見(jiàn)過(guò)太多天賦型選手在初賽折戟原因不是不會(huì)做而是總覺(jué)得題目簡(jiǎn)單、讀題太快、草稿不打、模擬不畫(huà)結(jié)果輸在粗心上。反過(guò)來(lái)那些愿意在草稿紙上認(rèn)認(rèn)真真畫(huà)遞歸棧、畫(huà)鏈表指針、列變量追蹤表的學(xué)生哪怕天賦平平最終也都走得很遠(yuǎn)。競(jìng)賽這條路沒(méi)有捷徑但少踩坑就是最快的路徑。希望這篇解析能幫你把該避的坑都避開(kāi)我們復(fù)賽見(jiàn)。