如果用1*2覆蓋的話
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括山南網(wǎng)站建設(shè)、山南網(wǎng)站制作、山南網(wǎng)頁制作以及山南網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,山南網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到山南省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
任意一塊骨牌在棋盤上的擺放都可以用一串長度為64的0、1序列來表示,比如
11000000000000000000000000000000000……0——表示在棋盤最左上角的位置橫著擺上一塊骨牌。
考慮到骨牌既可以橫著擺也可以豎著擺,一塊骨牌在棋盤上的擺放共有2*7*8=112種情況.
這樣就可以得到一個(gè)112*60大小的矩陣,不妨將該矩陣記為A。矩陣中的元素由0和1組成,矩陣中的每一行都有且只有兩個(gè)1。
于是上述問題,就轉(zhuǎn)換成怎樣從矩陣中找出32行,抽取出來的這32行構(gòu)成的新的32*60的矩陣,如果能滿足每列中有且只有一個(gè)1,那么它就是一個(gè)完美覆蓋。
矩陣的算法如下:
如果矩陣A為空且已經(jīng)選出了32行,則找到一個(gè)完美覆蓋,成功返回;
否則選取一個(gè)列c,如果c列中不存在1的話,不成功返回;
選擇C列中每一個(gè)滿足A[r,c]=1的行r;
將r值作為解決方案的一個(gè)步驟記錄下來;
對于r行中每一個(gè)A[r,j]=1的j值,從矩陣A中將第j列刪除;
對于j列中每一個(gè)A[i,j]=1的i值,從矩陣A中將第i行刪除;
將已經(jīng)縮小的矩陣重復(fù)進(jìn)行上面的運(yùn)算。
初學(xué)者建議購買,《算法競賽入門經(jīng)典》 劉汝佳作,十分好,在深入可以是他的另外一本,黑書,《算法藝術(shù)與信息學(xué)競賽》。
計(jì)劃:
ACM的算法(覺得很好,有層次感)POJ上的一些水題(可用來練手和增加自信)
(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)
初期:
一.基本算法:
(1)枚舉. (poj1753,poj2965)
(2)貪心(poj1328,poj2109,poj2586)
(3)遞歸和分治法.
(4)遞推.
(5)構(gòu)造法.(poj3295)
(6)模擬法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.圖算法:
(1)圖的深度優(yōu)先遍歷和廣度優(yōu)先遍歷.
(2)最短路徑算法(dijkstra,bellman-ford,floyd,heap+dijkstra)
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)
(3)最小生成樹算法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026)
(4)拓?fù)渑判?(poj1094)
(5)二分圖的最大匹配 (匈牙利算法) (poj3041,poj3020)
(6)最大流的增廣路算法(KM算法). (poj1459,poj3436)
三.數(shù)據(jù)結(jié)構(gòu).
(1)串 (poj1035,poj3080,poj1936)
(2)排序(快排、歸并排(與逆序數(shù)有關(guān))、堆排) (poj2388,poj2299)
(3)簡單并查集的應(yīng)用.
(4)哈希表和二分查找等高效查找法(數(shù)的Hash,串的Hash)
(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)
(5)哈夫曼樹(poj3253)
(6)堆
(7)trie樹(靜態(tài)建樹、動態(tài)建樹) (poj2513)
四.簡單搜索
(1)深度優(yōu)先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)
(2)廣度優(yōu)先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)
(3)簡單搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
五.動態(tài)規(guī)劃
(1)背包問題. (poj1837,poj1276)
(2)型如下表的簡單DP(可參考lrj的書 page149):
1.E[j]=opt{D[i]+w(i,j)} (poj3267,poj1836,poj1260,poj2533)
2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最長公共子序列)
(poj3176,poj1080,poj1159)
3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最優(yōu)二分檢索樹問題)
六.數(shù)學(xué)
(1)組合數(shù)學(xué):
1.加法原理和乘法原理.
2.排列組合.
3.遞推關(guān)系.
(POJ3252,poj1850,poj1019,poj1942)
(2)數(shù)論.
1.素?cái)?shù)與整除問題
2.進(jìn)制位.
3.同余模運(yùn)算.
(poj2635, poj3292,poj1845,poj2115)
(3)計(jì)算方法.
1.二分法求解單調(diào)函數(shù)相關(guān)知識.(poj3273,poj3258,poj1905,poj3122)
七.計(jì)算幾何學(xué).
(1)幾何公式.
(2)叉積和點(diǎn)積的運(yùn)用(如線段相交的判定,點(diǎn)到線段的距離等). (poj2031,poj1039)
(3)多邊型的簡單算法(求面積)和相關(guān)判定(點(diǎn)在多邊型內(nèi),多邊型是否相交)
(poj1408,poj1584)
(4)凸包. (poj2187,poj1113)
中級:
一.基本算法:
(1)C++的標(biāo)準(zhǔn)模版庫的應(yīng)用. (poj3096,poj3007)
(2)較為復(fù)雜的模擬題的訓(xùn)練(poj3393,poj1472,poj3371,poj1027,poj2706)
二.圖算法:
(1)差分約束系統(tǒng)的建立和求解. (poj1201,poj2983)
(2)最小費(fèi)用最大流(poj2516,poj2516,poj2195)
(3)雙連通分量(poj2942)
(4)強(qiáng)連通分支及其縮點(diǎn).(poj2186)
(5)圖的割邊和割點(diǎn)(poj3352)
(6)最小割模型、網(wǎng)絡(luò)流規(guī)約(poj3308, )
三.數(shù)據(jù)結(jié)構(gòu).
(1)線段樹. (poj2528,poj2828,poj2777,poj2886,poj2750)
(2)靜態(tài)二叉檢索樹. (poj2482,poj2352)
(3)樹狀樹組(poj1195,poj3321)
(4)RMQ. (poj3264,poj3368)
(5)并查集的高級應(yīng)用. (poj1703,2492)
(6)KMP算法. (poj1961,poj2406)
四.搜索
(1)最優(yōu)化剪枝和可行性剪枝
(2)搜索的技巧和優(yōu)化 (poj3411,poj1724)
(3)記憶化搜索(poj3373,poj1691)
五.動態(tài)規(guī)劃
(1)較為復(fù)雜的動態(tài)規(guī)劃(如動態(tài)規(guī)劃解特別的施行商問題等)
(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)
(2)記錄狀態(tài)的動態(tài)規(guī)劃. (POJ3254,poj2411,poj1185)
(3)樹型動態(tài)規(guī)劃(poj2057,poj1947,poj2486,poj3140)
六.數(shù)學(xué)
(1)組合數(shù)學(xué):
1.容斥原理.
2.抽屜原理.
3.置換群與Polya定理(poj1286,poj2409,poj3270,poj1026).
4.遞推關(guān)系和母函數(shù).
(2)數(shù)學(xué).
1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)
2.概率問題. (poj3071,poj3440)
3.GCD、擴(kuò)展的歐幾里德(中國剩余定理) (poj3101)
(3)計(jì)算方法.
1.0/1分?jǐn)?shù)規(guī)劃. (poj2976)
2.三分法求解單峰(單谷)的極值.
3.矩陣法(poj3150,poj3422,poj3070)
4.迭代逼近(poj3301)
(4)隨機(jī)化算法(poj3318,poj2454)
(5)雜題.
(poj1870,poj3296,poj3286,poj1095)
七.計(jì)算幾何學(xué).
(1)坐標(biāo)離散化.
(2)掃描線算法(例如求矩形的面積和周長并,常和線段樹或堆一起使用).
(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
(3)多邊形的內(nèi)核(半平面交)(poj3130,poj3335)
(4)幾何工具的綜合應(yīng)用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)
高級:
一.基本算法要求:
(1)代碼快速寫成,精簡但不失風(fēng)格
(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)
(2)保證正確性和高效性. poj3434
二.圖算法:
(1)度限制最小生成樹和第K最短路. (poj1639)
(2)最短路,最小生成樹,二分圖,最大流問題的相關(guān)理論(主要是模型建立和求解)
(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446
(3)最優(yōu)比率生成樹. (poj2728)
(4)最小樹形圖(poj3164)
(5)次小生成樹.
(6)無向圖、有向圖的最小環(huán)
三.數(shù)據(jù)結(jié)構(gòu).
(1)trie圖的建立和應(yīng)用. (poj2778)
(2)LCA和RMQ問題(LCA(最近公共祖先問題) 有離線算法(并查集+dfs) 和 在線算法
(RMQ+dfs)).(poj1330)
(3)雙端隊(duì)列和它的應(yīng)用(維護(hù)一個(gè)單調(diào)的隊(duì)列,常常在動態(tài)規(guī)劃中起到優(yōu)化狀態(tài)轉(zhuǎn)移的
目的). (poj2823)
(4)左偏樹(可合并堆).
(5)后綴樹(非常有用的數(shù)據(jù)結(jié)構(gòu),也是賽區(qū)考題的熱點(diǎn)).
(poj3415,poj3294)
四.搜索
(1)較麻煩的搜索題目訓(xùn)練(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
(2)廣搜的狀態(tài)優(yōu)化:利用M進(jìn)制數(shù)存儲狀態(tài)、轉(zhuǎn)化為串用hash表判重、按位壓縮存儲狀態(tài)、雙向廣搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
(3)深搜的優(yōu)化:盡量用位運(yùn)算、一定要加剪枝、函數(shù)參數(shù)盡可能少、層數(shù)不易過大、可以考慮雙向搜索或者是輪換搜索、IDA*算法. (poj3131,poj2870,poj2286)
五.動態(tài)規(guī)劃
(1)需要用數(shù)據(jù)結(jié)構(gòu)優(yōu)化的動態(tài)規(guī)劃.
(poj2754,poj3378,poj3017)
(2)四邊形不等式理論.
(3)較難的狀態(tài)DP(poj3133)
六.數(shù)學(xué)
(1)組合數(shù)學(xué).
1.MoBius反演(poj2888,poj2154)
2.偏序關(guān)系理論.
(2)博奕論.
1.極大極小過程(poj3317,poj1085)
2.Nim問題.
七.計(jì)算幾何學(xué).
(1)半平面求交(poj3384,poj2540)
(2)可視圖的建立(poj2966)
(3)點(diǎn)集最小圓覆蓋.
(4)對踵點(diǎn)(poj2079)
八.綜合題.
(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)gsyagsy 2007-11-29 00:22
以及補(bǔ)充 Dp狀態(tài)設(shè)計(jì)與方程總結(jié)
1.不完全狀態(tài)記錄
1青蛙過河問題
2利用區(qū)間dp
2.背包類問題
1 0-1背包,經(jīng)典問題
2無限背包,經(jīng)典問題
3判定性背包問題
4帶附屬關(guān)系的背包問題
5 + -1背包問題
6雙背包求最優(yōu)值
7構(gòu)造三角形問題
8帶上下界限制的背包問題(012背包)
3.線性的動態(tài)規(guī)劃問題
1積木游戲問題
2決斗(判定性問題)
3圓的最大多邊形問題
4統(tǒng)計(jì)單詞個(gè)數(shù)問題
5棋盤分割
6日程安排問題
7最小逼近問題(求出兩數(shù)之比最接近某數(shù)/兩數(shù)之和等于某數(shù)等等)
8方塊消除游戲(某區(qū)間可以連續(xù)消去求最大效益)
9資源分配問題
10數(shù)字三角形問題
11漂亮的打印
12郵局問題與構(gòu)造答案
13最高積木問題
14兩段連續(xù)和最大
152次冪和問題
16N個(gè)數(shù)的最大M段子段和
17交叉最大數(shù)問題
4.判定性問題的dp(如判定整除、判定可達(dá)性等)
1模K問題的dp
2特殊的模K問題,求最大(最小)模K的數(shù)
3變換數(shù)問題
5.單調(diào)性優(yōu)化的動態(tài)規(guī)劃
11-SUM問題
22-SUM問題
3序列劃分問題(單調(diào)隊(duì)列優(yōu)化)
6.剖分問題(多邊形剖分/石子合并/圓的剖分/乘積最大)
1凸多邊形的三角剖分問題
2乘積最大問題
3多邊形游戲(多邊形邊上是操作符,頂點(diǎn)有權(quán)值)
4石子合并(N^3/N^2/NLogN各種優(yōu)化)
7.貪心的動態(tài)規(guī)劃
1最優(yōu)裝載問題
2部分背包問題
3乘船問題
4貪心策略
5雙機(jī)調(diào)度問題Johnson算法
8.狀態(tài)dp
1牛仔射擊問題(博弈類)
2哈密頓路徑的狀態(tài)dp
3兩支點(diǎn)天平平衡問題
4一個(gè)有向圖的最接近二部圖
9.樹型dp
1完美服務(wù)器問題(每個(gè)節(jié)點(diǎn)有3種狀態(tài))
2小胖守皇宮問題
3網(wǎng)絡(luò)收費(fèi)問題
4樹中漫游問題
5樹上的博弈
6樹的最大獨(dú)立集問題
7樹的最大平衡值問題
8構(gòu)造樹的最小環(huán)
比特培訓(xùn)-24期(2017年上)-軟件設(shè)計(jì)師培訓(xùn)課件,免費(fèi)下載
鏈接:
提取碼:2ocw
比特培訓(xùn)-24期(2017年上)-軟件設(shè)計(jì)師培訓(xùn)課件|00.2015年-2016年試題及解析|14.多媒體和知識產(chǎn)權(quán)(2017年下半年-打印版本)-軟設(shè).doc|13.網(wǎng)絡(luò)安全(2017年上半年-打印版本-改革版本).docx|12.數(shù)據(jù)庫打印版本(2017年上格式ok).docx|11.面向?qū)ο笤O(shè)計(jì)模式--打印版本(2017年上-Java版本-24期).docx|10.UML分析與設(shè)計(jì)(2017年上-第24期打印版本).doc|09.面向?qū)ο蠹癑ava實(shí)踐(2017年上--完整打印版本).docx|08.操作系統(tǒng)原理與技術(shù)(打印版本-2017年上-24期).doc|07.常用算法設(shè)計(jì)方法(2017年上-打印版本--鄧少勛--有答案--改革版本).docx|06.計(jì)算機(jī)體系結(jié)構(gòu)-打印版本(24期-2017年上).docx|05.數(shù)據(jù)結(jié)構(gòu)(2017年上-打印版本).docx|04.數(shù)據(jù)流圖與數(shù)據(jù)庫分析與設(shè)計(jì)(2017年上-打印版本).doc|03.程序設(shè)計(jì)語言基礎(chǔ)和編譯原理(2017年上半年-打印版本).doc|02.計(jì)算機(jī)網(wǎng)絡(luò)概述打印版(2017年上).docx。
第十三屆全國青少年信息學(xué)奧林匹克聯(lián)賽初賽試題
( 普及組 Pascal 語言 二小時(shí)完成)
● ● 全部試題答案均要求寫在答卷紙上,寫在試卷紙上一律無效 ●●
一、 單項(xiàng)選擇題(共20題,每題1.5分,共計(jì)30分。每題有且僅有一個(gè)正確答案。)
1. 在以下各項(xiàng)中,( )不是CPU的組成部分。
A.控制器 B.運(yùn)算器 C.寄存器 D.主板
2.在關(guān)系數(shù)據(jù)庫中,存放在數(shù)據(jù)庫中的數(shù)據(jù)的邏輯結(jié)構(gòu)以( )為主。
A.二叉樹 B.多叉樹 C.哈希表 D.二維表
3.在下列各項(xiàng)中,只有( )不是計(jì)算機(jī)存儲容量的常用單位。
A.Byte B.KB C.UB D.TB
4.ASCII碼的含義是( )。
A.二→十進(jìn)制轉(zhuǎn)換碼 B.美國信息交換標(biāo)準(zhǔn)代碼
C.?dāng)?shù)字的二進(jìn)制編碼 D.計(jì)算機(jī)可處理字符的唯一編碼
5.一個(gè)完整的計(jì)算機(jī)系統(tǒng)應(yīng)包括( )。
A.系統(tǒng)硬件和系統(tǒng)軟件 B.硬件系統(tǒng)和軟件系統(tǒng)
C.主機(jī)和外部設(shè)備 D.主機(jī)、鍵盤、顯示器和輔助存儲器
6.IT的含義是( )。
A.通信技術(shù) B.信息技術(shù) C.網(wǎng)絡(luò)技術(shù) D.信息學(xué)
7.LAN的含義是( )。
A.因特網(wǎng) B.局域網(wǎng) C.廣域網(wǎng) D.城域網(wǎng)
8.冗余數(shù)據(jù)是指可以由其它數(shù)據(jù)導(dǎo)出的數(shù)據(jù)。例如,數(shù)據(jù)庫中已存放了學(xué)生的數(shù)學(xué)、語文和英語的三科成績,如果還存放三科成績的總分,則總分就可以看作冗余數(shù)據(jù)。冗余數(shù)據(jù)往往會造成數(shù)據(jù)的不一致。例如,上面4個(gè)數(shù)據(jù)如果都是輸入的,由于操作錯(cuò)誤使總分不等于三科成績之和,就會產(chǎn)生矛盾。下面關(guān)于冗余數(shù)據(jù)的說法中,正確的是( )。
A.應(yīng)該在數(shù)據(jù)庫中消除一切冗余數(shù)據(jù)
B.用高級語言編寫的數(shù)據(jù)處理系統(tǒng),通常比用關(guān)系數(shù)據(jù)庫編寫的系統(tǒng)更容易消除冗余數(shù)據(jù)
C.為了提高查詢效率,在數(shù)據(jù)庫中可以保留一些冗余數(shù)據(jù),但更新時(shí)要做相容性檢驗(yàn)
D.做相容性檢驗(yàn)會降低效率,可以不理睬數(shù)據(jù)庫中的冗余數(shù)據(jù)
9.在下列各軟件,不屬于NOIP競賽(復(fù)賽)推薦使用的語言環(huán)境有( )。
A.gcc B.g++ C.Turbo C D.Free Pascal
10.以下斷電后仍能保存數(shù)據(jù)的有( )。
A.硬盤 B.高速緩存 C.顯存 D.RAM
11.在下列關(guān)于計(jì)算機(jī)語言的說法中,正確的有( )。
A.高級語言比匯編語言更高級,是因?yàn)樗某绦虻倪\(yùn)行效率更高
B.隨著Pascal、C等高級語言的出現(xiàn),機(jī)器語言和匯編語言已經(jīng)退出了歷史舞臺
C.高級語言比匯編語言程序更容易從一種計(jì)算機(jī)上移植到另一種計(jì)算機(jī)上
D.C是一種面向?qū)ο蟮母呒売?jì)算機(jī)語言
12.近20年來,許多計(jì)算機(jī)專家都大力推崇遞歸算法,認(rèn)為它是解決較復(fù)雜問題的強(qiáng)有力的工具。在下列關(guān)于遞歸算法的說法中,正確的是( )。
A.在1977年前后形成標(biāo)準(zhǔn)的計(jì)算機(jī)高級語言“FORTRAN77”禁止在程序使用遞歸,原因之一是該方法可能會占用更多的內(nèi)存空間
B.和非遞歸算法相比,解決同一個(gè)問題,遞歸算法一般運(yùn)行得更快一些
C.對于較復(fù)雜的問題,用遞歸方式編程一般比非遞歸方式更難一些
D.對于已經(jīng)定義好的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù) sin(x),應(yīng)用程序中的語句“y=sin(sin(x));”就是一種遞歸調(diào)用
13.一個(gè)無法靠自身的控制終止的循環(huán)成為“死循環(huán)”,例如,在C語言程序中,語句“while(1) printf(“*”);”就是一個(gè)死循環(huán),運(yùn)行時(shí)它將無休止地打印*號。下面關(guān)于死循環(huán)的說法中,只有( )是正確的。
A.不存在一種算法,對任何一個(gè)程序及相應(yīng)的輸入數(shù)據(jù),都可以判斷是否會出現(xiàn)死循環(huán),因而,任何編譯系統(tǒng)都不做死循環(huán)檢查
B.有些編譯系統(tǒng)可以檢測出死循環(huán)
C.死循環(huán)屬于語法錯(cuò)誤,既然編譯系統(tǒng)能檢查各種語法錯(cuò)誤,當(dāng)然也應(yīng)該能檢查出死循環(huán)
D.死循環(huán)與多進(jìn)程中出現(xiàn)的“死鎖”差不多,而死鎖是可以檢測的,因而,死循環(huán)也可以檢測的
14.在Pascal語言中,表達(dá)式 (23 or 2 xor 5)的值是( )。
A.18 B.1 C.23 D.32
15.在Pascal語言中,判斷整數(shù)a等于0或b等于0或c等于0的正確的條件表達(dá)式是( )。
A.not ((a0) or (b0) or (c0))
B.not ((a0) and (b0) and (c0))
C.not ((a=0) and (b=0)) or (c0)
D.(a=0) and (b=0) and (c=0)
16.地面上有標(biāo)號為A、B、C的三根柱,在A柱上放有10個(gè)直徑相同中間有孔的圓盤,從上到下依次編號為1,2,3……,將A柱上的部分盤子經(jīng)過B柱移入C柱,也可以在B柱上暫存。如果B柱上的操作記錄為“進(jìn)、進(jìn)、出、進(jìn)、進(jìn)、出、出、進(jìn)、進(jìn)、出、進(jìn)、出、出”。那么,在C柱上,從下到上的編號為( )。
A.2 4 3 6 5 7 B.2 4 1 2 5 7 C.2 4 3 1 7 6 D.2 4 3 6 7 5
17.與十進(jìn)制數(shù)1770對應(yīng)的八進(jìn)制數(shù)是( )。
A.3350 B.3351 C.3352 D.3540
18.設(shè)A=B=True,C=D=False,一下邏輯運(yùn)算表達(dá)式值為假的有( )。
A.(「A∧B)∨(C∧D∨A) B.「(((A∧B)∨C)∧D)
C.A∧(B∨C∨D)∨D D.(A∧(D∨C))∧B
19.(2070)16 + (34)8 的結(jié)果是( )。
A.(8332)10 B.(208A)16 C.(100000000110)2 D.(20212)8
20.已知7個(gè)節(jié)點(diǎn)的二叉樹的先根遍歷是1 2 4 5 6 3 7(數(shù)字為節(jié)點(diǎn)的編號,以下同),中根遍歷是4 2 6 5 1 7 3,則該二叉樹的后根遍歷是( )。
A.4 6 5 2 7 3 1 B.4 6 5 2 1 3 7 C.4 2 3 1 5 4 7 D.4 6 5 3 1 7 2
二、問題求解(共2題,每題5分,共計(jì)10分)。
1、(子集劃分)將n個(gè)數(shù)(1,2,…,n)劃分成r個(gè)子集。每個(gè)數(shù)都恰好屬于一個(gè)子集,任何兩個(gè)不同的子集沒有共同的數(shù),也沒有空集。將不同劃分方法的總數(shù)記為S(n,r)。例如,S(4,2)=7,這7種不同的劃分方法依次為{(1),(234)},{(2),(134)},{(3),(124)},{(4),(123)},{(12),(34)},{(13),(24)},{(14),(23)}。當(dāng)n=6,r=3時(shí),S(6,3)=______________。
(提示:先固定一個(gè)數(shù),對于其余的5個(gè)數(shù)考慮S(5,3)與S(5,2),再分這兩種情況對原固定的數(shù)進(jìn)行分析。)
2、(最短路線)某城市的街道是一個(gè)很規(guī)整的矩形網(wǎng)絡(luò)(見下圖),有7條南北向的縱街,5條東西向的橫街。現(xiàn)要從西南角的A走到東北角的B,最短的走法共有多少種?___________
(圖畫不了)
三、閱讀程序?qū)懡Y(jié)果(共4題,每題8分,共計(jì)32分。)
1、program j301;
var i,a,b,c,x,y:integer;
p:array[0..4] of integer;
begin
y:=20;
for i:=0 to 4 do read(p);
readln;
a:=(p[0]+p[1])+(p[2]+p[3]+p[4]) div 7;
b:=p[0]+p[1] div ((p[2]+p[3]) div p[4]);
c:=p[0]*p[1] div p[2];
x:=a+b-p[(p[3]+3) mod 4];
if (x10)
then y:=y+(b*100-a) div (p[p[4] mod 3]*5)
else
y:=y+20+(b*100-c) div (p[p[4] mod 3]*5);
writeln(x,',',y);
end.
{注:本例中,給定的輸入數(shù)據(jù)可以避免分母為0或數(shù)組元素下表越界。}
輸入:6 6 5 5 3 輸出:______________________
2、program j302;
var a,b:integer;
var x,y:^integer;
procedure fun(a,b:integer);
var k:integer;
begin k:=a; a:=b; b:=k; end;
begin
a:=3; b:=6;
x:=@a; y:=@b;
fun(x^,y^);
writeln(a,',',b);
end.
輸出:_______________________________
3、program j303;
var a1:array[1..50] of integer;
var i,j,t,t2,n,n2:integer;
begin
n:=50;
for i:=1 to n do a1:=0;
n2:=round(sqrt(n));
for i:=2 to n2 do
if (a1=0) then
begin
t2:=n div i;
for j:=2 to t2 do a1[i*j]:=1;
end;
t:=0;
for i:=2 to n do
if (a1=0) then
begin
write(i:4); inc(t);
if (t mod 10=0) then writeln;
end;
writeln;
end.
輸出:_____________________________________________
_____________________________________________
4、Program j304;
Type str1=string[100];
Str2=string[200];
Var
S1:str1; s2:str2;
Function isalpha(c:char):Boolean;
Var i:integer;
Begin
i:=ord(c);
if ((i=65) and (i=90)) or ((i=97) and (i=122)) then
isalpha:=true
else isalpha:=false;
end;
function isdigit(c:char):Boolean;
var i:integer;
begin
i:=ord(c); if (i=48) and (i=57) then isdigit:=true
else isdigit:=false;
end;
procedure expand(s1:str1;var s2:str2);
var i,j:integer; a,b,c:char;
begin
j:=1; c:=char(1); i:=0;
while (i=ord(s1[0])) do
begin inc(i); c:=s1;
if c='-' then begin {1}
a:=s1[i-1]; b:=s1[i+1];
if (isalpha(a) and isalpha(b)) or (isdigit(a) and isdigit(b)) then begin
dec(j);
while (ord(upcase(a))ord(upcase(s1[i+1]))) do
begin
s2[j]:=a; inc(j); inc(a); end;
end
else
begin s2[j]:=c; inc(j); end;
end{1}
else begin s2[j]:=c; inc(j); end; end; s2[0]:=char(j-2); end;
begin readln(s1); expand(s1,s2); writeln(s2);
end.
輸入:wer2345d-h454-82qqq 輸出:__________________________
四、完善程序(前4空,每空2.5分,后6空,每空3分,共28分)。
1、(求字符的逆序)下面的程序的功能是輸入若干行字符串,每輸入一行,就按逆序輸出該行,最后鍵入-1終止程序。
請將程序補(bǔ)充完整。
Program j401;
type str1=string[100];
var line:str1; kz:integer;
procedure reverse(var s:str1);
var I,j:integer; t:char;
begin
i:=1; j:=length(s);
while (ij) do begin
t:=s; s:=s[j]; s[j]:=t;
; ;
end;
end;
begin
writeln(‘continue? -1 for end.’);
readln(kz);
while ( )do
begin
readln(line);
;
writeln(line);
writeln(‘continue? -1 for end.’);
readln(kz);
end;
end.
2 2 3 3
2 -1 1 3
4 1 1 5
4 4 5 5
2、(棋盤覆蓋問題)在一個(gè)2k×2 k個(gè)方格組成的棋盤中恰有一個(gè)方格與其它方格不同(圖中標(biāo)記為-1的方格),稱之為特殊方格?,F(xiàn)用L型(占3個(gè)小方格)紙片覆蓋棋盤上除特殊方格的所有部分,各紙片不得重疊,于是,用到的紙片數(shù)恰好是(4 k-1)/3。在下表給出的一個(gè)覆蓋方案中,k=2,相同的3各數(shù)字構(gòu)成一個(gè)紙片。
下面給出的程序使用分治法設(shè)計(jì)的,將棋盤一分為四,依次處理左上角、右上角、左下角、右下角,遞歸進(jìn)行。請將程序補(bǔ)充完整。
(圖畫不了...郁悶)
Program j402;
type arr1=array[1..65] of integer;
arr2=array[1..65] of arr1;
var board:arr2; tile:integer; size,dr,dc:integer;
procedure chessboard(tr,tc:integer; dr,dc:integer; var size:integer);
var t,s:integer;
begin
if (size=1) then ;
t:=tile; inc(tile);
s:=size div 2;
if then chessboard(tr,tc,dr,dc,s) else begin
board[tr+s-1]:=t;
end;
if (drtr+s) and (dc=tc+s) then chessboard(tr,tc+s,dr,dc,s)
else begin board[tr+s-1][tc+s]:=t;
; end;
if (dr=tr+s) and (dctc+s) then chessboard(tr+s,tc+s,dr,dc,s) else begin
board[tr+s][tc+s]:=t;
; end;
if (dr=tr+s) and (dc=tc+s) then chessboard(tr+s,tc+s,dr,dc,s)
else begin board[tr+s][tc+s]:=t;
; end;
end;
procedure prt1(n:integer);
var I,j:integer;
begin
for I:=1 to n do begin
for j:=1 to n do write(board[j]:3);
writeln;
end;
end;
begin
writeln(‘input size(4/8/16/64):’);
readln(size); writeln(‘input the position of special block(x,y):’);
readln(dr,dc); board[dr][dc]:=-1;
tile:=1; chessboard(1,1,dr,dc,size); prt1(size);
end.
NOIP2007年普及組(Pascal語言)參考答案與評分標(biāo)準(zhǔn)
一、單項(xiàng)選擇題:(每題1.5分)
題號 1 2 3 4 5 6 7 8 9 10
答案 D D C B B B B C C A
題號 11 12 13 14 15 16 17 18 19 20
答案 C A A A B D C D A A
二、問題求解:(每題 5分)
1.90 2.210
三、閱讀程序?qū)懡Y(jié)果
1. 15, 46(對1個(gè)數(shù)給4分,無逗號扣1分)
2. 3, 6
3. 2 3 5 7 11 13 17 19 23 29
31 37 41 43 47
4. wer2345defgh45456782qqq
四、完善程序(前4空(①--④),每空2.5分,后6空(⑤--⑩),每空3分)
1.
① inc(i) 或i:=i+1
② dec(j) 或 j:=j-1
③ kz-1
④ reverse(line)
2.
⑤ exit
⑥ (drtr+s)and(dctc+s)
⑦ chessboard(tr,tc,tr+s-1,tc+s-1,s)
⑧ chessboard(tr,tc+s,tr+s-1,tc+s,s)
⑨ chessboard(tr+s,tc,tr+s,tc+s-1,s)
⑩ chessboard(tr+s,tc+s,tr+s,tc+s,s)
貌似我考過了 不難
希望對你能有所幫助。
名稱欄目:棋盤覆蓋問題代碼java 棋盤覆蓋問題算法分析
文章來源:http://muchs.cn/article36/dohsipg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、小程序開發(fā)、、網(wǎng)站內(nèi)鏈、網(wǎng)站收錄、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)