題意非常簡單易懂,對於漲姿勢0,資料非常小,比較容易想到的是直接迴圈暴力解題完成任務。把資料放入陣列arr,迴圈i,j控制所有區間算和。結果記入vis.
到了漲姿勢1,2,3,我們觀察資料變化,發現資料變大,0的姿勢就會超時。這是我們可以用字首陣列和處理。用sum[i]表示0~i項的和,那麼區間i~j的和就可以用sum[j]-sum[i]直接運算得出。而sum陣列可以在輸入時就處理獲得,避免了獲得i~j時每次計算一次和造成的時間消耗。
構建sum陣列
預處理,ans計數。
到了漲姿勢2,去掉了每組大資料為1-2.雖然ai,qi減少。但是實際上sum容易溢位
這是我們就要繼續優化演算法。我們選擇優化
這一部分。我們利用前n項和是乙個遞增數列的特徵想到了二分。詳見程式設計時的筆記。
這樣我們成功將兩層for優化為一成,lower__bound是手寫的二分下界函式。
漲姿勢3,我們發現乙個特點,就是問題特別多,那麼我們在每個問題中處理複雜度就比較高了。我們又注意到乙個細節資料範圍是10^6,那麼我們可以用陣列標記的方法吧所有結果計算出來,陣列標記用下標記入資料是比較經典的方法。有正負可以用兩個陣列,或者用乙個較大陣列,以本題為例,200 0000的陣列,以第100 0000為分界。下標減去100 0000就是實際大小,下圖tmp是陣列最大大小,防越界
寒假作業三題解
繼續完成作業二的程式設計題。優化架構,思考 的拓展性,比如我需要增加其他功能,如選擇,迴圈語句怎麼辦。思考 可以參考現有的程式語言,把這些語言的內容加入。如選擇 迴圈語句 函式 或者擴大數字範圍,支援負數等。if sum 0 為縮小函式長度,直接使用純數字的方式去表示漢字,與以前使用assic碼同理...
寒假 作業2
大話物聯網 讀書心得 物聯網是繼計算機 網際網路與移動通訊之後的世界資訊產業的第三次浪潮。但是對於我這種連計算機都還不太懂的菜鳥新手和科技無知者來說,物聯網 三個字真的是乙個新興詞彙。在之前我連 物聯網 三個字好像都不太聽到過,更加不可能了解。殊不知我已經和這個世界如此的脫軌,已經被時代遠遠地落在了...
寒假作業9
1.請寫出網頁的基本標籤 作用和語法。basic tags 基 本 標 籤 creates an html document 創 建 一 個html 文 檔sets off the title and other information that isn t displayed on the web...