1. 程式人生 > >NOIP複賽複習(一)常見問題與常用策略

NOIP複賽複習(一)常見問題與常用策略

數學類問題

1. 精度處理(高精度、實數處理、各種浮點型別處理方法)

2. 組合數學問題(斐波那契數列、第二類數、卡特蘭數、Polya原理、排列組合計數、加法原理與乘法原理)

3. 進位制問題(特定二進位制串的統計、二分查詢、利用二進位制進行路徑、狀態描述、二進位制轉換)

4. 遞推與遞迴關係(遞推關係式、通項公式、數列、博弈問題)

5. 數位、數字、特定數值的查詢、統計(數值處理、質因子分解、冪次分解、數值表示式、新增運算子、分式與實數運算)

6. 數學雜題(迴文數字、矩陣處理、約瑟夫與反約瑟夫問題)

7. 數學剪枝(無解判定、解線性方程組、限定搜尋範圍)

常用策略 

1. 相關公式、定理、原理的應用

2. 尋找規律、歸納整理遞迴與遞推關係式

3. 按照數學方法構造、二進位制轉化等技巧性處理

4. 注意事項:

  A. 規律準確(小資料手工推算、搜尋程式驗證)

  B. 資料型別是否合理、資料範圍是否超界(大資料處理)


字元、字串類問題

1. 讀入、分離和統計問題(檔案結束符、行結束符、空格符、回車符、字元組合分離、統計)

2. 插入、刪除、修改、替換等相關編輯問題(字元距離、優美編輯、初始狀態與目標狀態的變換、迭代等處理性問題)

3. KMP演算法及其改正

4. 迴文串、高精度運算及其以字元(串)作為處理物件的相關問題

常用策略

1. 一般性字元處理

2. 動態規劃方法

3. 字元樹(查詢、樹的前序、中序、後序遍歷)

4. 注意事項:

  A. 讀入時小心

  B. 字串型別與字元陣列存貯及其壓縮存取


統計類問題

1. 方案總數統計(矩陣、三角形劃分方案統計、問題解集個數統計)

2. 特定、離散元素統計(二進位制統計問題)

3. 橫向、縱向規模化問題(資料範圍、資料維數巨大)

4. 離散化問題(衛星覆蓋、圖形周長)

5. 一般性統計問題(時間複雜度) 

常用策略

1. 掃描技術、歸類統計及平面、空間座標體系變換等幾何學知識

2. 離散化思想

3. 線段樹處理方法

4. 降維、剪枝

5. 藉助於數學方法進行統計

6. 注意事項:

  A. 統計計數:避免待統計元素的遺漏、重複

  B. 多次讀檔案、邊讀邊處理等大資料檔案的處理技巧



模擬類問題

1. 按題設描述進行直接模擬

2. 佇列模型模擬

3. 按時間順序模擬狀態

常用策略

1. 按條件描述直接模擬

2. 注意事件發生的起止時間、狀態的變化

3. 按某一指標(時間)排序進行預處理

4. 注意事項:

  A. 準確理解題意,切忌加入個人想當然思想,嚴格按題意進行模擬

  B. 一般來說要考慮的因素較多,做題前要有絕對清晰的思路並逐步修正要考慮的各種因素


搜尋類問題

1. 列舉類問題(有較好列舉方法或列舉量不大的問題)

2. 產生式系統(產生式規則,生成新的元素類問題)

3. 無任何好的解決辦法或其他方法不能完成的問題

4. 搜尋與其他方法的結合(與動態規劃的結合、與貪心思想的結合等)

常用策略 

1. 確定搜尋物件和搜尋策略

2. 選取適合的搜尋方法(深度、廣度、記憶化搜尋)

3. 注意與其他方法的結合(貪心回溯、動態規劃)

4. 減少搜尋量(剪枝)

5. 注意事項:

  A. 剪枝條件的正確性(加剪枝條件與不加剪條件的程式結果對照)

  B. 搜尋也是解決問題的一種方法,有時搜尋程式也可以收到較好的效果,只要有較好的優化措施


最優化問題

1. 圖論中的最優化問題

2. 規劃問題

3. 特定指標(長度、次數等)最(極)值問題

常用策略

1. 動態規劃

2. 圖論中經典演算法及其改正

3. 貪心+搜尋解決辦法

4. 貪心思想

5. 數學方法

6. 注意事項:

  A. 動態規劃階段劃分、狀態描述及轉移方程對動態規劃效率的影響

  B. 狀態存貯對空間優化的影響(根據題目特點決定狀態存貯數目、狀態存貯方法的選取(滾動存貯、壓縮存貯))

  C. 雙層動態規劃

  D. 多次動態規劃


圖論問題

1. 最小生成樹問題、最小點基、中心點設定

2. 路徑問題(最短路、關鍵路徑、道路、ERLUR迴路、哈密頓迴路)

3. 拓撲排序問題(頂點的度)

4. 連通性問題(新增、刪除邊、點增加或減少連通度)

5. 流量問題

6. 二部圖的匹配問題(最大匹配、最佳匹配)

常用策略

1. 點、邊、權、度等圖中基本元素關係

2. 拓樸排序作預處理

3. 圖論演算法的變形與改正

4. 圖搜尋演算法

5. 標號法

6. 動態規劃方法

7. 注意事項:

  A. 選取圖結構的存貯資料結構(矩陣、鄰接表)

  B. 在構建圖模型時,考慮是否有多種構圖方法


2000-2016NOIP普及組與提高組複賽考察內容

年份

題目名稱

考查內容

難度


2000-2016年NOIP普及組複賽題目

2000

乘積最大

劃分動態規劃

★★★

2000

稅收與補貼問題

數學或列舉

★★

2000

單詞接龍

深搜

★★★★

2000

計算器的改良

字串處理

★★

2001

裝箱問題

0/1揹包或列舉

2001

數的計算

動態規劃

2001

求先序排列

樹的遍歷

相關推薦

NOIP複賽複習常見問題常用策略

數學類問題 1. 精度處理(高精度、實數處理、各種浮點型別處理方法) 2. 組合數學問題(斐波那契數列、第二類數、卡特蘭數、Polya原理、排列組合計數、加法原理與乘法原理) 3. 進位制問題(特定二進位制串的統計、二分查詢、利用二進位制進行路徑、狀

NOIP複賽複習十三圖論演算法鞏固提高

一、圖的儲存   1、鄰接矩陣   假設有n個節點,建立一個n×n的矩陣,第i號節點能到達第j號節點就將[i][j]標記為1(有權值標記為權值),  樣例如下圖:   /*無向圖,無權值*/ i

NOIP複賽複習STL演算法樹結構模板

STL演算法 STL 演算法是一些模板函式,提供了相當多的有用演算法和操作,從簡單如for_each(遍歷)到複雜如stable_sort(穩定排序),標頭檔案是:#include <algorithm>。常用STL 演算法庫包括:sort快速排序演算法、二分

NOIP複賽複習STL容器字串模板

STL容器 STL 容器是一些模板類,提供了多種組織資料的常用方法。常用的STL容器包括pair(組合)、list(列表,類似於連結串列)、vector(向量,類似於陣列)、priority_queue(優先佇列)、set(集合)、map(對映)、stack(棧)等,通過模板的引數

NOIP複賽複習演算法分析排序模板

演算法分析 演算法分析的目的是預測演算法所需的資源,如計算時間(CPU 消耗)、記憶體空間(RAM 消耗)、通訊時間(頻寬消耗)等,以及預測演算法的執行時間,即在給定輸入規模時,所執行的基本運算元量,或者稱為演算法複雜度。 演算法的執行時間取決於輸入的資料特徵,輸入

NOIP複賽複習程式對拍圖論模板

程式對拍 所謂“對拍”,顧名思義,就是讓兩者相互比對。所謂“兩者”,一是你要測試的程式,二是一個答案在該程式在一定範圍(時間/空間)內結果必定正確的程式(一般是用暴力求解的程式)。對拍一般需要造資料程式(data.exe),保證正確性的暴力對拍程式(test.exe)與測試程式(以moo.e

NOIP複賽複習讀寫外掛高精度模板

讀入輸出掛 讀入輸出掛就是逐個字元地讀入資料,從而讓讀入更加快速。輸出掛的原理也是一樣的,都是通過將輸出數字變成輸出字元以加快速度。當然輸入輸出外掛一般用在大量輸入輸出的情況下,這樣價效比才高一些,否則得不償失。 void Rd(int &res){  &nbs

NOIP複賽複習檔案讀寫數論模板

檔案讀入讀出 假設題目名為“add”,那麼資料夾名為“add”,c++程式名為“add.cpp”,讀入檔名為“add.in”,輸出檔名為“add.out”。四個的拼寫均不可有誤,包括大小寫差異。千萬不要除錯後就忘記修改檔案讀入讀出了。  #include<cstdio&

NOIP複賽複習競賽環境注意事項

一、比賽不提供紙質試題,只提供電子版試題檔案。 該檔案壓縮包儲存在計算機桌面上。監考人公佈密碼後,選手自行解密試題。 試題解壓密碼會影響一個人的心情,一定要一次輸對,注意大小寫,不要邊輸入邊檢查,要對自己有自信。 二、江蘇複賽選手上機可自選windows或linux作業系統。

NOIP複賽複習怎樣才能拿到高分?

摘要 考場策略和程式測試是資訊學競賽中非常重要的環節,很多優秀的選手在很多比賽中總是會在這兩個環節上犯下這樣和那樣的錯誤,導致得到的分數和實力不成正比,最後留下了無盡的遺憾。本文將探討一些這兩個環節上值得注意的地方,提出一些可行的方法,分享一些經驗,以此希望幫助選手們在比賽中發揮水平,減少失

NOIP複賽複習如何設計測試資料?

有些同學參加一次資訊學比賽之後,自我感覺非常不錯,但是測評結果成績卻並不理想。造成這種情況的原因有多方面,但是我認為其中不可忽視的一大原因就是在寫完程式之後,他們並不知道如何保證程式的正確性。在這裡,我就這個問題提出一點自己的看法。 先從考試的時間分配問題講起。很多同學覺得考試時間很充分,N

NOIP複賽複習基礎演算法鞏固提高

一、倍增演算法:   定義:用f[i][j]表示從i位置出發的2j個位置的資訊綜合(狀態) 一個小小的問題:為什麼是2j而不是3j,5j,…?因為,假設為kj,整個演算法的時間複雜度為(k-1)logk,當k=2時,時間複雜度最小。 這個演算法的三個應用:

NOIP複賽複習十五動態規劃鞏固提高

經典例題:數字金字塔(Luogu 1216)  寫一個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。 我們現在這裡討論搜尋如何實現:  狀態:目前在第x行第y列 

NOIP複賽複習十四字串演算法鞏固提高

一、Trie樹   1.定義: 通過字串建成一棵樹,這棵樹的節點個數一定是最少的。例如:4個字串"ab","abc","bd","dda"對應的trie樹如下: 其中紅色節點表示存在一個字串是以這個點結尾的。  一個性質:在樹上,兩個點u,

NOIP複賽複習十二數論演算法鞏固提高

一、數論    1.數   整數、自然數(大於等於0的整數)、正整數(大於0的整數)、負整數、非負整數、非正整數、非零整數、奇數偶數。   2.整除性   設a,b∈Z,如果存在c∈Z並且a=bc,則

Hadoop自學筆記常見Hadoop相關項目一覽

-a https class Lucene 百萬 data fcm you 轉換 本自學筆記來自於Yutube上的視頻Hadoop系列。網址: https://www.youtube.com/watch?v=-TaAVaAwZTs(當中一個) 以後不再贅述 自學筆

Java加密技術——BASE64單向加密算法MD5&SHA&MAC

sha256 integer 被人 sent 發現 Coding design 如果 targe http://snowolf.iteye.com/blog/379860 加密解密,曾經是我一個畢業設計的重要組件。在工作了多年以後回想當時那個加密、解密算法,實在是太單

.NET中使用Redis之ServiceStack.Redis學習安裝簡單的運行

arraylist write client cli ring blog 控制臺 創建 spa 1.下載ServiceStack.Redis PM> Install-Package ServiceStack.Redis 2.vs中創建一個控制臺程序 class Pro

Python3入門——概述環境安裝

知乎 沒有 color https oob 環境 bsp 風格 初級 一、概述   1.python是什麽     Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。 Python 是一種解釋型語言: 這意味著開發過程中沒有了編

大數據入門第十九天——推薦系統mahout入門概述

tps font 解決 技術分享 tar nbsp mage cnblogs clas 一、推薦系統概述   為了解決信息過載和用戶無明確需求的問題,找到用戶感興趣的物品,才有了個性化推薦系統。其實,解決信息過載的問題,代表性的解決方案是分類目錄和搜索引擎,如hao123