刷陳題ing @@

         

              在刷去年noip集訓的題目時,遇到了一些還不錯的題目,小小的彙總一下。

         更新ing

  

          1.一個初始爲空的序列,給出n條信息,每一條信息讓你把某個數插入到指定位置,n<=300000,求最後的序列情況.

           倒做,已知前導空位的數量,用zkw線段樹log(n)找到該位置。

  

           2.給出一個長度爲n的數列,要求取其中一段,使其平均數大於等於給定的m,問方案數. n<=100000 m<=10000

           將每個數減去m,問題轉化爲求有多少個區間的和大於等於0,離散樹狀數組即可。


           3.n個數,選取若干個數,使得這若干個數的和爲m,數很大不能dp  n<=40;

           搜索前一半,再搜索另一半並與前一半hash計算方案。


          4.給定一個無向圖,求一個生成樹,使得最大邊與最小邊之差最小。 V,E<=5000

           利用kruscal 性質, 枚舉最小邊,裸做kruscal。


          5.讓你求一個長度最小的遞增序列,序列的最後一項是n,除第一個數外,序列滿足每一個數都是令一個數的整數倍或令兩個數的和 n<=1000

           數字1 是必須要的,從1開始搜索,擴展新的數,加上必要的可行性剪枝和搜索方法(只用當前最大的數和另外的數來相加擴展)。


           6.給定一個數s,求一個數n,使得在序列1~n每一項前添加+/-,使得計算得到的值是s。s<=10^12

            手算找出規律:n mod 4=3 or n mod 4=0 時,可以拼成0~n的所有偶數,否則可以拼成0~n的所有奇數;

            先二分用等差數列求和公式逼近,在利用規律調整。


          7.平面二維座標系中一些點,有一個直角邊爲A,B(A 垂直y軸,B垂直x軸)的Rt三角形,選取任意一個點爲該Rt三角形的直角頂點,問三角形最多覆蓋幾個點。

           問題轉化爲三個偏序關係  x>=X, y>=Y, Bx+Ay>=BX+AY+AB

           由於偏序關係的特殊性,不需要維護三個偏序,只要把點按照Ax+By排序,倒着插入,維護兩個樹狀數組,利用容斥原理即可。

  

          8.給定一個矩陣,矩陣中有一些障礙,求該矩陣中有多少個子矩陣不包含任何障礙。

            做每一行時,維護一個單調棧,棧中單調遞增的是每一列的到該行的延伸長度,並記錄棧中矩陣數量,加棧和彈棧時順便維護,並用這個值累加答案。

 

        暫時就這些了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章