1. 程式人生 > >2016.8.16中山紀念中學資訊學普及組模擬比賽題解

2016.8.16中山紀念中學資訊學普及組模擬比賽題解

    這次考試考得棒棒噠,第二次第一,主要是因為很多大神走了,所以我就奮起直追,就360啦,目標直奔c組,打好堅實基礎,努力學習,不放棄思考,oh yeah.比賽時一看題目感覺挺水的,一下就carry了第一題和第二題,隨後遊走gank了第四題,最後與第三題糾結,最後還是carry了,哈哈.附帶題目的題解致上.
    第1題題目描述


    憑著奶牛的聰明,他很快就把語數英X四科趕了上來(聽說還是半斤八兩),但是,可能由於他太聰明瞭,導致基礎科一直搞不好,所以每次考試,他都想作弊,而且他又找回了一些朋友,於是他就試一下作弊的滋味了。他是怎麼作弊的呢?奶牛的朋友太強悍了,他生怕被老師發現,又害怕被其他同學偷去,於是他每次遞給奶牛都是一段只含有a,b,c,d的字串,那麼答案是什麼呢?“答案就是該字串內最長的迴文串。”哈哈哈,奶牛瞬間就發現了這個祕密,可是,奶牛的朋友是個**狂,他每次遞給奶牛的都是一些非常長的字串,奶牛在短時間內沒發找到答案,所以奶牛又找到了你,幫他找出字串內最大的迴文串。
    別看題目這麼長,其實真的挺簡單的,就是求最長迴文而已,用常規方法列舉迴文中心點,往兩邊擴充套件,直到不等於為止,還有一種情況是ABBA這樣子的,我們就用兩個變數一個為i,另一個為i+1,所以呢我們就每次x(為i的變數)-1,y(另一個)+1,記錄一下開頭結尾輸出就行了.


    第二題題目描述


      令S為n個元素的集合,則S有2^n-1個子集(除去空集)。現在要你從這2^n-1個子集中選出最多的子集,使這些子集能構成一個雜置。
雜置是指任意兩個集合沒有包含或被包含的關係。例如對於有3個元素的集合{a,b,c}。
{a,b},{a,c},{b,c}可以構成一個雜置,而{a},{b},{a,b}則不能構成一個雜置。
    雜置呢,這個東西蠻難理解的,但是,我們並不需要太多的資料來求,前4個就非常能說明問題了
1—1,2—2,3—3,4—6,是什麼規律呢,那就是楊輝三角!做之前要把楊輝三角模擬出來,然後輸出
a[b[i]+1,(b[i]+1)div 2+1]就可以了。b陣列是讀入的東西。


    第三題題目描述


   一天你對著眼前的景物拍了一張照,這個相機很特別,有建築物的地方顯示“X”,沒有建築物的地方顯示為“.”,假設每個建築都是塊狀的,照片長W(1<=W<=1,000,000),用N(1<=N<=50,000)對平面座標(x,y)( 1 <= x <= W, 0 <= y <= 500,000)描述照片中建築物高度發生變化的位置,你的任務是計算出最少需要多少個建築才能形成該照片。
如下圖:
(沒有圖片啦)-_-
在輸入中被描述為: (1,1), (2,2), (5,1), (6,3), (8,1), (11,0), (15,2), (17,3), (20,2), (22,1).這幅圖片最少需要6個建築,下面是用6個建築形成該照片的例子:沒有例子啦-_-
    然後呢我們把第一個數刪除,就是說(1,1)刪除第一個1,(2,2)刪掉第一個2,然後雙重迴圈判斷,如果a[i]<a[j]then break;if(a[i]=a[j])then bz[j]:=false;最後再計算bz[i]有多少個true,以及a[i]<>0那麼就ans+1,最後輸出就行了,為什麼相同的a[i]與a[j]要標記呢,因為兩個相同的高度可以不用兩個建築,一個就行了.那為什麼小於就要退出呢,因為如果小於,那麼它與後面與它一樣的高度就連不起來了.


    第四題題目描述


        一條筆直的路邊有N(1 <= N <= 1,000)個草叢,草叢位置互不相同,我們用一個整數表示每個草叢的位置。現在你從某個位置L(1<=L<=1,000^2)出發去除掉所有的草叢,為達到目的你可以來回改變方向去移動,假設你以每秒1個單位距離的速度移動,並且能在到達草叢的瞬間把草除掉。
       要求計算草叢被清除的時刻總和的最小值。
    這道題貪心是可以60分的,所以,就顯得"十分的簡單"的樣子,事實上,正解是有一定難度的,首先,正解是動態規劃,然後,我們還有一個條件才能執行狀態轉移方程,是什麼呢,那就是j>i  n>=i>-1 1<=j<=n
方程自己推啦.


    希望,自己,奇蹟.