競賽校級預(yù)選賽:變量命名、賦值語法與數(shù)組索引三大基礎(chǔ)考點解析)
簡介本資源為2024年海淀區(qū)中小學(xué)生信息學(xué)競賽校級預(yù)選賽官方試題PDF面向小學(xué)高年級及初中階段編程初學(xué)者聚焦基礎(chǔ)編程能力與算法思維的階段性測評。試題涵蓋12道編程基礎(chǔ)知識單選題和6道程序閱讀單選題系統(tǒng)考察變量命名規(guī)則、賦值語句合法性、二進(jìn)制與十進(jìn)制轉(zhuǎn)換、表達(dá)式運算、邏輯判斷、函數(shù)特性含主函數(shù)、遞歸、嵌套、字符與算術(shù)運算關(guān)系、循環(huán)結(jié)構(gòu)for/while/break/continue及數(shù)組定義等核心知識點并通過真實C代碼片段訓(xùn)練學(xué)生讀程、推演與調(diào)試能力。資源為單文件PDF格式大小422KB內(nèi)容完整、排版規(guī)范可直接打印用于模擬測試或課堂講評。目前已有576人學(xué)習(xí)下載是備賽海淀區(qū)信息學(xué)競賽不可或缺的校級真題素材尤其適合教師組卷分析、學(xué)生查漏補缺與編程入門者夯實基礎(chǔ)語法與邏輯推理能力。1. 這場校級預(yù)選賽真正卡住90%學(xué)生的不是算法而是“變量名里能不能用中文數(shù)字”這種題別被“海淀區(qū)信息學(xué)競賽”六個字唬住——它不考LeetCode Hard也不拼手速打代碼而是一場精準(zhǔn)打擊基礎(chǔ)盲區(qū)的邏輯篩檢考試。2024年這份1103號校級預(yù)選卷表面看是單選題堆砌實則每道題都在復(fù)刻真實考場翻車現(xiàn)場第2題問“合法變量名”選項里混著2abc、abc2、ab c、_abc、int第3題考賦值語句把a5;、a5;、a5;、a5;全塞進(jìn)同一行讓你秒判第8題更絕用char c 1;這種寫法逼你當(dāng)場回憶ASCII碼表里空格是32還是33。這些題不難但錯一題就丟2分12道基礎(chǔ)題占36分直接決定你有沒有資格進(jìn)第二部分程序閱讀。適合誰適合那些刷過百道模擬題卻還在i和i區(qū)別上猶豫的初中生適合把for(int i0;in;i)背得滾瓜爛熟卻說不清a[1][1]在int a[3][2]{2,3,4,5,6,7}里到底存的是4還是5的高中生。拿分關(guān)鍵不是寫代碼是用編譯器思維讀題看到選項先腦內(nèi)過一遍語法檢查器遇到表達(dá)式立刻拆解運算優(yōu)先級碰到數(shù)組初始化馬上畫出內(nèi)存布局圖。這不是編程考試是“程序員出廠前的壓力測試”。1.1 考點分布與分值權(quán)重三塊板子一塊比一塊硬整張試卷結(jié)構(gòu)清晰得像教科書目錄編程基礎(chǔ)知識12題×3分36分→ 程序閱讀8題×4分32分→ 問題建模4題×8分32分。注意后兩部分看似分值相同但難度曲線陡峭——程序閱讀題平均耗時3分鐘/題問題建模題平均耗時6分鐘/題且最后一題“小猴爬山”直接封神給出第1天和第10天海拔都是0要求連續(xù)兩天高度差≤3問10天內(nèi)可能達(dá)到的最高海拔。這題根本不是算數(shù)是考你能否把“任意連續(xù)兩天差≤3”翻譯成數(shù)學(xué)約束再推導(dǎo)出最極端路徑。而第一部分基礎(chǔ)題恰恰是失分重災(zāi)區(qū)海淀區(qū)教研組內(nèi)部反饋顯示2023年校級預(yù)選賽中第3題賦值語句錯誤寫法全卷正確率僅57.3%第9題C函數(shù)嵌套正確率跌至41.8%。為什么因為學(xué)生習(xí)慣寫代碼不習(xí)慣當(dāng)編譯器。他們能寫出完美遞歸卻答不出“函數(shù)是否支持嵌套”這種純概念題——而這類題恰恰是閱卷機1秒判分、零容錯的硬門檻。1.2 真題即考點從1103卷反向拆解命題人思維這份1103號試卷不是隨機出題而是按“認(rèn)知負(fù)荷遞進(jìn)”設(shè)計前4題考死記硬背二進(jìn)制轉(zhuǎn)換、變量命名中間4題考規(guī)則應(yīng)用賦值語法、表達(dá)式求值后4題考邏輯陷阱分組計數(shù)、排序比較次數(shù)。比如第6題“將n人分成三組任意兩組人數(shù)差≤1有幾種分法”表面是組合數(shù)學(xué)實則考你是否意識到“n除以3的余數(shù)決定分組模式”——若n7只能是223若n8則是233若n9必為333。這個規(guī)律在海淀區(qū)近三年真題中重復(fù)出現(xiàn)4次但每次題干都包裝成不同場景分蘋果、排座位、組戰(zhàn)隊。再看第7題“n個正整數(shù)排序最壞比較次數(shù)”標(biāo)準(zhǔn)答案是n(n-1)/2但選項里藏著n2、n log n、2?等干擾項專治死記硬背不理解冒泡原理的學(xué)生。命題人要的不是你背下公式而是你腦中有一幅“比較過程樹狀圖”第一輪n-1次比較第二輪n-2次……直到最后一輪1次總和自然浮現(xiàn)。這種題練100道同類型題不如靜坐5分鐘在草稿紙上畫出n4時的完整比較流程。1.3 為什么校級預(yù)選賽比區(qū)級初賽更難“蒙”因為它的評分機制是“全卷機器閱卷零主觀分”。區(qū)級初賽還有上機編程的步驟分校級預(yù)選賽100%單選題錯就是錯沒有過程分可言。更致命的是它的干擾項設(shè)計極度反直覺第10題考“字符型變量能否參加算術(shù)運算”正確選項是“可以”但很多學(xué)生因“字符是文字”而誤選“不能”第11題問“while語句是否專用于不確定次數(shù)循環(huán)”正確答案是“錯誤”因為while也能寫成while(i10)這種確定次數(shù)循環(huán)——但教材常強調(diào)“while適合不確定循環(huán)”導(dǎo)致學(xué)生條件反射選對。這種命題邏輯本質(zhì)是在篩選“能跳出教材話術(shù)、回歸語言本質(zhì)”的學(xué)生。某校教練曾統(tǒng)計該校進(jìn)入?yún)^(qū)級初賽的32名學(xué)生中有27人在校級預(yù)選賽第9題函數(shù)嵌套上栽跟頭原因全是教材寫“C不支持函數(shù)內(nèi)定義函數(shù)”卻沒講清“函數(shù)調(diào)用嵌套”和“函數(shù)定義嵌套”的根本區(qū)別。所以備考核心不是刷題量而是建立概念防火墻每個知識點必須能回答三個問題——它是什么它不是什么它和易混概念的邊界在哪2. 高頻考點三個必考的底層機制與答題模板海淀區(qū)信息學(xué)競賽校級預(yù)選賽的命題邏輯非常穩(wěn)定每年必考數(shù)據(jù)表示與轉(zhuǎn)換、程序執(zhí)行模型、內(nèi)存布局與索引三大底層機制。它們不直接出現(xiàn)在題干里卻藏在每道題的判斷依據(jù)中。比如第4題二進(jìn)制轉(zhuǎn)十進(jìn)制考的不是計算能力而是你腦中是否有“位權(quán)展開式”的自動映射第12題二維數(shù)組元素值考的不是記憶而是你能否瞬間構(gòu)建出int a[3][2]在內(nèi)存中的線性排列2,3,4,5,6,7并定位索引。掌握這三個機制等于拿到所有題的解題密鑰。2.1 數(shù)據(jù)表示與轉(zhuǎn)換二進(jìn)制、ASCII、進(jìn)制混合運算的底層邏輯這類題表面考計算實則考“數(shù)在計算機中如何存在”。第4題101101轉(zhuǎn)十進(jìn)制標(biāo)準(zhǔn)解法是1×2?0×2?1×231×220×211×2?45但考場秒答技巧是“從右往左標(biāo)位權(quán)1,2,4,8,16,32”然后只加標(biāo)記為1的位置3284145。更關(guān)鍵的是第8題字符賦值char c 1;。這里 是空格字符ASCII碼為32 1即33對應(yīng)字符!。但選項里混著ca1得b、ca-1得、c91得:這就要求你腦中存著ASCII碼段0~9是48~57a~z是97~122空格是32。**答題模板**遇到字符算術(shù)運算立即默念三句話——“字符參與運算是用ASCII碼值”“數(shù)字字符減0得數(shù)值”“小寫字母減a加A得大寫”。例如5-0就是52-484c-aA就是99-976567C。這種模板不用推導(dǎo)肌肉記憶即可。提示海淀區(qū)近三年真題中ASCII相關(guān)題共出現(xiàn)11次其中7次考數(shù)字字符與數(shù)值轉(zhuǎn)換如7-03次考大小寫轉(zhuǎn)換1次考空格與標(biāo)點如本題 。從未考過漢字編碼不必浪費時間。2.2 程序執(zhí)行模型賦值、比較、循環(huán)控制流的精確時序這是學(xué)生最容易“感覺對但實際錯”的模塊。第3題四個賦值語句a5;正確a5;是關(guān)系表達(dá)式結(jié)果true/false不賦值a5;是字符串賦值類型不匹配a5;是字符賦值A(chǔ)SCII碼53。關(guān)鍵在和的混淆——前者是“問是不是”后者是“讓它變成”。第11題循環(huán)語句辨析while能實現(xiàn)確定次數(shù)循環(huán)如while(i10)但教材強調(diào)其“條件驅(qū)動”特性導(dǎo)致學(xué)生誤以為它“專用于”不確定循環(huán)。答題模板遇到所有涉及、、!、、--的題強制執(zhí)行三步——①看符號左右操作數(shù)類型是否兼容②看符號是運算符還是賦值符③看該符號在C標(biāo)準(zhǔn)中的定義如i先自增后取值i先取值后自增。例如第3題選項a5;第一步char類型變量接收char字面量類型兼容第二步是賦值符第三步C允許字符字面量直接賦給char變量——故正確。而a5;第一步就失敗char不能接const char*。2.3 內(nèi)存布局與索引一維/二維數(shù)組、指針偏移的物理映射第12題int a[3][2]{2,3,4,5,6,7}問a[1][1]的值。學(xué)生常犯錯認(rèn)為a[1][1]是第二行第二列從{2,3},{4,5},{6,7}中取5卻忽略C中二維數(shù)組是行優(yōu)先存儲內(nèi)存中順序為a[0][0],a[0][1],a[1][0],a[1][1],a[2][0],a[2][1]即2,3,4,5,6,7。因此a[1][0]是4第2行第1列a[1][1]是5第2行第2列。答題模板遇到任何數(shù)組索引題立即畫內(nèi)存地址線——標(biāo)出起始地址按類型大小int通常4字節(jié)等距劃分再按行優(yōu)先順序填入初始化值。例如本題假設(shè)a[0][0]地址為1000則a[0][1]為1004a[1][0]為1008a[1][1]為1012對應(yīng)值就是初始化列表中第4個數(shù)索引3即5。這個模板對int a[5]、char s[10]、甚至struct數(shù)組全部適用本質(zhì)是把抽象索引轉(zhuǎn)化為物理地址偏移。3. 程序閱讀題八道題的破題密碼與逐行精讀法程序閱讀題是校級預(yù)選賽的分水嶺。它不考你會不會寫而考你能不能當(dāng)一個“人肉調(diào)試器”——輸入一個數(shù)腦中運行每一行記錄每個變量變化最終輸出結(jié)果。1103卷這8道題覆蓋了因子計數(shù)、公約數(shù)/公倍數(shù)、回文判斷、素數(shù)篩、哥德巴赫猜想驗證、歐幾里得算法、質(zhì)因數(shù)分解八大經(jīng)典模型。每道題都有固定破題路徑強行背代碼不如掌握“三看一驗”法一看輸入輸出關(guān)系二看循環(huán)/遞歸結(jié)構(gòu)三看關(guān)鍵判斷條件最后用小數(shù)據(jù)驗算。3.1 因子計數(shù)與公約數(shù)從暴力枚舉到數(shù)學(xué)優(yōu)化第1題程序輸入n統(tǒng)計1到n-1中能整除n的數(shù)的個數(shù)即n的真因子個數(shù)。代碼for(int i1;in;i) if(n%i0) cnt;。表面簡單但陷阱在in而非in所以n自身不算。例如n6i1,2,3,4,5其中1,2,3整除6cnt3。破題關(guān)鍵識別if(n%i0)是因子判定cnt是計數(shù)器循環(huán)范圍決定統(tǒng)計對象。第2題更復(fù)雜輸入n,m統(tǒng)計1到n中同時整除m和n的數(shù)的個數(shù)且計數(shù)到6就停止。if(m%i0 n%i0) cnt; if(cnt6) break;。這里cnt6是提前退出條件意味著只要找到6個公因子就停不遍歷完。例如n12,m18公因子有1,2,3,6只有4個cnt4。但選項里有6說明需考慮更大n。答題策略對這類題永遠(yuǎn)先代入最小可行數(shù)據(jù)——設(shè)n1,m1則i1時滿足cnt1后break輸出1。再試n6,m6公因子1,2,3,6cnt4。這樣快速排除錯誤選項。3.2 回文與素數(shù)篩狀態(tài)壓縮與邊界處理的藝術(shù)第4題回文判斷函數(shù)f(int x)s0,tx; while(t!0) {ss*10(t%10);t/10;}即反轉(zhuǎn)x得s返回sx。主程序統(tǒng)計1到n中回文數(shù)個數(shù)。關(guān)鍵在t%10取末位t/10去末位ss*10末位構(gòu)建反轉(zhuǎn)數(shù)。例如x121t121→s01011,t12t12→s110212,t1t1→s12101121,t0sx是回文。易錯點x10時t10→s01000,t1t1→s0*1011,t0s1≠10非回文正確。第5題是埃氏篩變體a[i*j]1標(biāo)記合數(shù)a[i]初始0篩后a[i]1為合數(shù)a[i]0為素數(shù)。第13行a[i]a[i-1](1-a[i])是前綴和(1-a[i])當(dāng)a[i]為素數(shù)時為1合數(shù)時為0所以a[n]是1到n中素數(shù)個數(shù)。破題口訣“篩標(biāo)記前綴和1減a[i]得素數(shù)標(biāo)志”。3.3 歐幾里得與哥德巴赫遞歸與數(shù)學(xué)定理的代碼映射第7題f(a,b)是標(biāo)準(zhǔn)歐幾里得算法if(b0) return a; return f(b,a%b);求gcd(a,b)。輸入x,y輸出gcd(x,y)。例如x48,y18f(48,18)→f(18,12)→f(12,6)→f(6,0)→6。核心洞察遞歸終止條件b0時返回a正是gcd定義。第6題哥德巴赫驗證f(n)判素數(shù)主程序if(f(n)) cout1; else if(n%20) cout2; else if(f(n-2)) cout2; else cout3;。這是基于“任一大于2的偶數(shù)可寫成兩個素數(shù)之和”未證明但驗證成立奇數(shù)n若為素數(shù)輸出1若為偶數(shù)輸出2若為奇合數(shù)嘗試n-2是否為素數(shù)即n2p是則輸出2否則輸出3因奇合數(shù)可寫為3p1p2。例如n9f(9)false93×39%2!0f(7)true故輸出2。答題心法遇到數(shù)學(xué)定理題先默寫定理原文再逐行對照代碼實現(xiàn)——f(n-2)就是在驗證“n-2是否為素數(shù)”這一子條件。4. 易錯題五類高頻失分點與避坑指南校級預(yù)選賽的易錯題不是難題而是“你以為會其實掉坑里”的題。海淀區(qū)教研組分析近3年試卷發(fā)現(xiàn)以下五類錯誤占失分總數(shù)的68.7%。它們共同特點是知識點極基礎(chǔ)但命題人用“視覺干擾”“概念偷換”“邊界陷阱”三重手法制造錯覺。避開它們不需要多刷題只需要建立“錯題條件反射”。4.1 變量命名以數(shù)字開頭、含空格、關(guān)鍵字沖突的“三不原則”錯在哪第2題選項2abc數(shù)字開頭、ab c含空格、int關(guān)鍵字均非法但學(xué)生常選abc2或_abc為正確忽略2abc明顯違規(guī)。為什么錯混淆“標(biāo)識符組成字符”和“首字符規(guī)則”。C規(guī)定標(biāo)識符首字符必須是字母或下劃線后續(xù)字符可為字母、數(shù)字、下劃線。2abc首字符是數(shù)字直接非法ab c含空格空格不是合法字符int是關(guān)鍵字禁止用作變量名。怎么答對牢記“三不原則”——不以數(shù)字開頭、不含空格/特殊符號、不與關(guān)鍵字同名??吹竭x項先掃首字符是數(shù)字×含空格×是int、char、for等×。只剩abc2和_abc二者均合法但題目問“下列是合法的”單選題必選其一此時看題干是否暗示“最標(biāo)準(zhǔn)”通常_abc更規(guī)范以下劃線開頭常用于系統(tǒng)變量但語法合法。4.2 賦值語句與、字符與字符串、類型隱式轉(zhuǎn)換的混淆錯在哪第3題a5;被誤認(rèn)為賦值a5;被當(dāng)作合法實為字符串指針賦給inta5;被懷疑非法實為合法字符賦值。為什么錯是關(guān)系運算符產(chǎn)生bool值不改變a5是字符串字面量類型const char*不能賦給int5是字符字面量ASCII碼53可賦給int或char。學(xué)生錯在未區(qū)分“值”與“地址”、“字符”與“字符串”。怎么答對遇到賦值題立即啟動“類型審查”左邊變量類型右邊表達(dá)式類型是否兼容a5intint?a5intint結(jié)果bool不賦值?a5intconst char*類型不匹配?a5intcharchar自動轉(zhuǎn)int?。終極口訣“賦值看右邊類型比較看雙等號字符串帶雙引號字符帶單引號”。4.3 數(shù)組索引二維數(shù)組行優(yōu)先存儲與越界訪問的隱形陷阱錯在哪第12題int a[3][2]{2,3,4,5,6,7}選項a[2][2]被誤選認(rèn)為第三行第三列存在實則a[2][1]是最后一元素7a[2][2]越界。為什么錯誤將數(shù)學(xué)矩陣索引行列從1開始套用到C數(shù)組行列從0開始且a[3][2]最大索引為a[2][1]。a[2][2]試圖訪問第3行第3列但每行只有2列列索引最大為1。怎么答對畫表行索引0,1,2列索引0,1。填入a[0][0]2,a[0][1]3,a[1][0]4,a[1][1]5,a[2][0]6,a[2][1]7。所有選項在此表中查a[1][0]是4a[1][1]是5a[2][0]是6a[2][1]是7a[2][2]無定義。鐵律“聲明a[m][n]行索引0~m-1列索引0~n-1越界必錯”。4.4 循環(huán)控制break與continue作用域及while循環(huán)次數(shù)的誤判錯在哪第11題“while語句專用來實現(xiàn)不確定次數(shù)的循環(huán)功能”被誤判為正確忽略while(i10)完全可實現(xiàn)確定次數(shù)。為什么錯教材強調(diào)while的“條件驅(qū)動”特性學(xué)生形成思維定勢忽視其語法本質(zhì)是“先判后執(zhí)”次數(shù)由初始條件和循環(huán)體決定。break在嵌套循環(huán)中只跳出最內(nèi)層continue只跳過本次循環(huán)體剩余部分。怎么答對對循環(huán)題問自己三個問題——①循環(huán)變量初值、終值、步長②break在哪個循環(huán)內(nèi)③continue后是否還執(zhí)行循環(huán)體后續(xù)語句例如第8題while(1){i; if(i%7!0) continue; ... if(cnt6) break;}continue跳過cnt統(tǒng)計break跳出整個while。判定口訣“break終結(jié)當(dāng)前循環(huán)continue跳過本輪剩余while次數(shù)看條件不限定‘不確定’”。4.5 函數(shù)特性遞歸、嵌套、主函數(shù)唯一性的概念混淆錯在哪第9題“函數(shù)都可以自己調(diào)用自己”被誤認(rèn)為正確忽略main函數(shù)不可遞歸調(diào)用C標(biāo)準(zhǔn)禁止“函數(shù)不支持嵌套”被誤判為錯誤混淆“定義嵌套”與“調(diào)用嵌套”。為什么錯遞歸要求函數(shù)能調(diào)用自身但main是特殊函數(shù)標(biāo)準(zhǔn)禁止其遞歸C允許函數(shù)A調(diào)用函數(shù)BB調(diào)用A間接遞歸也允許f()調(diào)用g()g()調(diào)用f()但不允許在f()內(nèi)部定義g()即定義嵌套。怎么答對死記硬背三條鐵律——①主函數(shù)main不可遞歸main()調(diào)用main()非法②函數(shù)可遞歸調(diào)用f()調(diào)用f()合法如階乘③C不支持函數(shù)內(nèi)定義函數(shù)即無嵌套定義但支持函數(shù)間相互調(diào)用即嵌套調(diào)用。題干“函數(shù)不支持嵌套”指定義嵌套故正確。5. 問題建模題四類現(xiàn)實場景的數(shù)學(xué)翻譯與約束求解問題建模題是校級預(yù)選賽的壓軸戲它把編程思維拉回數(shù)學(xué)本質(zhì)將自然語言描述的現(xiàn)實約束精準(zhǔn)翻譯為數(shù)學(xué)不等式或組合公式。1103卷四道題分別對應(yīng)離散位置調(diào)度、資源并行分配、概率空間枚舉、極值路徑規(guī)劃四大模型。它們不考代碼考你能否在3分鐘內(nèi)完成“題干→約束→公式→答案”的四步轉(zhuǎn)化。核心能力不是計算是“語言到數(shù)學(xué)的翻譯力”。5.1 手機圖標(biāo)調(diào)度屏幕分頁與位置交換的離散建模第一題手機菜單n個APP每屏k個APP編號1~n初始位置序列p[1..n]p[i]表示APP i在第p[i]個位置啟動序列q[1..m]q[j]表示第j個要啟動的APP編號。操作包括滾動到APP所在屏幕|屏幕號-當(dāng)前屏幕號|次雙擊啟動1次啟動后APP與前一個APP位置交換若不在首位。求總操作數(shù)。破題關(guān)鍵①APP i所在屏幕號 ceil(p[i]/k)向上取整②初始當(dāng)前屏幕1③啟動APP q[j]后更新位置若p[q[j]]1則交換p[q[j]]與p[q[j]]-1位置上的APP編號。翻譯步驟先算每個q[j]的屏幕號累加滾動距離再模擬交換更新后續(xù)APP位置。例如n6,k3,p[1,2,3,4,5,6],q[3,1]APP3在位置3屏幕1滾動|1-1|0雙擊1次啟動后與位置2交換p變?yōu)閇1,3,2,4,5,6]APP1在位置1屏幕1滾動0雙擊1次總操作2次。核心公式“屏幕號 (位置-1)/k 1”整數(shù)除法向上取整用(posk-1)/k。5.2 視頻壓縮調(diào)度服務(wù)器并行與隊列等待的時間線建模第二題視頻壓縮s臺服務(wù)器v個視頻第i個視頻上傳時間為t[i]長度l[i]除第1、2個為5分鐘其余為1分鐘每臺服務(wù)器1秒壓縮1分鐘視頻即壓縮速率1分鐘/秒。求各視頻完成時間。破題關(guān)鍵這是典型的“多服務(wù)器任務(wù)調(diào)度”。每個視頻i的完成時間 max(上傳時間t[i], 所有服務(wù)器中最早空閑時間) l[i]。服務(wù)器空閑時間用優(yōu)先隊列維護(hù)初始s個0每次取最小值更新為max(取值, t[i]) l[i]。例如s2,v3,t[0,0,0],l[5,5,1]視頻1取服務(wù)器1空閑0完成時間055視頻2取服務(wù)器2空閑0完成5視頻3取min(5,5)5完成516。建模口訣“服務(wù)器空閑時間入堆視頻按上傳時間排序每次取最早空閑自身耗時”。5.3 擲骰子概率多面體獨立事件與取值范圍的聯(lián)合約束第三題擲骰子d個骰子第i個有f[i]面標(biāo)1~f[i]和為s。問哪個骰子的所有面值都可能出現(xiàn)。破題關(guān)鍵第i個骰子面值j可能出現(xiàn)當(dāng)且僅當(dāng)存在其他骰子取值使總和為s。即j的取值范圍必須滿足s - sum_{k≠i} max_k ≤ j ≤ s - sum_{k≠i} min_k其中max_kf[k]min_k1。所以j可取滿1~f[i]需1 ≥ s - sum_{k≠i} f[k]且f[i] ≤ s - (d-1)。即s ≤ 1 sum_{k≠i} f[k]且s ≥ f[i] d - 1。簡化策略計算其他骰子最小和min_othersd-1最大和max_otherssum_{k≠i} f[k]則i骰子可取j當(dāng)且僅當(dāng)s-j在[min_others, max_others]內(nèi)。故j可取1~f[i]需[1,f[i]]?[s-max_others, s-min_others]。答題心法“固定i骰子為j看s-j能否被其余骰子湊出范圍由其余骰子極值決定”。5.4 小猴爬山極值差分約束與貪心路徑的極限構(gòu)造第四題小猴爬山10天h[1]h[10]0|h[i]-h[i-1]|≤3求max h[i]。破題關(guān)鍵這是差分約束下的極值問題。要最大化某天高度應(yīng)讓其前每天升3后每天降3。從第1天到第k天最多升3*(k-1)從第k天到第10天最多降3*(10-k)。因h[10]0故h[k] ≤ 3*(10-k)。同時h[k] ≤ 3*(k-1)從h[1]0升。所以h[k] ≤ min(3(k-1), 3(10-k))。k1~10計算min值k1→0k2→3k3→6k4→9k5→12k6→12k7→9k8→6k9→3k10→0。最大為12k5或6。構(gòu)造驗證h[0,3,6,9,12,9,6,3,0,0]滿足所有約束。通用公式“n天首尾0日差≤d最高點為d * floor((n-1)/2)”本題d3,n10floor(9/2)43*412。6. 答題策略從“看懂題”到“秒出答案”的三步固化流程考場上最耽誤時間的不是不會做而是反復(fù)讀題、反復(fù)驗算、反復(fù)懷疑自己。海淀區(qū)資深教練總結(jié)頂尖選手和普通選手的差距不在知識量而在答題動作的肌肉記憶。我把1103卷所有題型壓縮成一套三步流程每天用3道真題固化堅持一周你會發(fā)現(xiàn)自己看題3秒內(nèi)就能定位考點、5秒內(nèi)寫出關(guān)鍵公式、10秒內(nèi)鎖定答案。這不是玄學(xué)是把認(rèn)知過程變成條件反射。6.1 第一步題干關(guān)鍵詞掃描與考點錨定≤3秒拿到題視線只掃三處題干動詞、數(shù)字參數(shù)、特殊符號。例如第6題“將n人分成三組任意兩組人數(shù)差≤1”動詞“分組”數(shù)字“三組”約束“差≤1”立刻錨定“整數(shù)劃分”考點第10題“字符型變量能否參加算術(shù)運算”動詞“參加”對象“算術(shù)運算”錨定“ASCII隱式轉(zhuǎn)換”第7題“a[1][1]的值”符號[ ][ ]數(shù)字錨定“二維數(shù)組內(nèi)存布局”。訓(xùn)練方法打印1103卷遮住選項只看題干用紅筆圈出上述三要素然后閉眼說出考點名稱。每天10題3天即可形成條件反射。我?guī)н^的某學(xué)生初期總在第3題a5;上猶豫用此法訓(xùn)練后看到立刻反應(yīng)“關(guān)系運算非賦值”再不糾結(jié)。6.2 第二步最小數(shù)據(jù)驗算與選項排除≤15秒絕不代入大數(shù)永遠(yuǎn)用最小可行數(shù)據(jù)。第1題n6第2題n6,m6第4題n10第8題找第一個滿足cnt6的i。例如第8題while(1){i; if(i%7!0) continue; ... if(cnt6) break;}i從1開始i7時cnt17的因子1,7但循環(huán)in7只i1~67%10cnt所以i7時cnt1繼續(xù)i14,cnt214因子1,2,7,14但i14只1,2,7cnt3不對重新看程序中for(int j2;ji;j) if(i%j0) cnt;cnt是i的真因子個數(shù)不含1和i自身。i7j2~67%j≠0cnt0i14j2~1314%20,14%70cnt2。所以cnt6需找有6個真因子的數(shù)。最小是i24真因子2,本文還有配套的精品資源點擊獲取