原创 洛谷p1006傳紙條

原題 不能每次選最大的走(貪心),因爲有可能小的後面接大的,比如 0   1   99 12 10 1 由於只能想兩個方向走,所以到達結果的步數是固定的(長+寬-1) 但是用步數不能表達狀態,所以就用座標表示f[i][j]表示在(i,j)

原创 hash個人總結c++

哈希算法 定義hash函數使狀態轉移爲數字,但有可能多個狀態的hash值相同,稱其爲衝突。用hash表來解決衝突。 int find(int k) { Int h = hash(k); Int p = first[h]; While

原创 二分算法個人總結c++

二分算是比較高效的算法,分爲二分查找和二分答案 二分查找 在排好序的數組中查找所需元素的位置,單次查找複雜度(log2n) 思想就是比較自己的值和中間值的大小,比mid大就向右區間二分,比mid小就向左區間二分,直到自己的值和左端點的值相

原创 openjudge1807正方形題解

原題 座標範圍很大,不能開二維數組,用vector也不方便搜索(不過應該也能做,畢竟數據不多) 定義hash函數爲x,y的平方和(別忘取mod) 運用一些數學原理,二重循環找正方形對角頂點座標,由此判斷另外兩個頂點的座標,並在hash表中

原创 高等數學一——微積分個人筆記

該博客記錄一些細點。 1.數列存在極限數列,但函數不存在極限函數,因爲函數存在無數種趨近情況: 例如對於f(x)=x,不存在極限;而因此不能簡單地討論函數是否有極限。 而數組有確定的下標值,對於其中地某一個數組下標,都有確切的值與它對應,

原创 洛谷p1063能量項鍊

原題 和環形合併石子很像,沒做過合併石子的推薦先去做它。 這是石子合併的題解,這裏就不多囉嗦了。 #include<iostream> #include<cstdio> #include<iomanip> #include<cstring

原创 洛谷p1156垃圾陷阱

原題 每落下一個垃圾,有兩個選擇——喫掉或摞起來,摞到一定高度即可。 那麼狀態很好表示,現在有三個元素,生命,高度,時間表示狀態。 實際上可以壓縮一維,即f[i][j]表示第i個垃圾摞了j高度時的生命值,和揹包問題相似。 #include

原创 c++缺省構造函數

c++缺省構造函數類內嵌對象 類 書寫實驗報告時發現一個問題,首先寫了一個類 如果說寫這個程序的人是爲了不讓編譯器產生缺省構造函數,那麼他顯然達到了這個目的。 但實際上在public中已經有構造函數的情況下,編譯器是不會產生缺

原创 洛谷p1032字串變換c++

原題 主要運用的是子字符串的替換和hash 關於子字符串的替換:一開始我用的是數組,2000多字,寫的頭大。正解應該用string和replace函數,非常方便! hash:找一個合適的hash函數,然後構建hash表即可。 下方的代碼可

原创 洛谷p1280尼克的方案

原題 主要有兩個問題 1.正推當作貪心聯想區間覆蓋問題,反例:大的覆蓋小的。 2.逆推從任務結束時間開始推,反例:這和正推推開始時間有區別麼? 實際上還是比較好想的,明顯是線性,所以用一維f[i]表示i時最少工作時間; 那麼大致想一個思路

原创 洛谷p1918保齡球

原題 題目要求找到對應的值,數據範圍在10^5內,因此不能循環枚舉每一個值判斷。 那麼就需要一個高效的算法,根據所求在數組內查找相同值,可以使用stl庫裏的set查詢,也可以二分 二分的話要把數據排序,但要對應輸出未排序的下標,所以需要用

原创 洛谷p1064金明的預算方案

原題 如果不考慮附件,就是一道01揹包題。 所以我們就先不考慮附件,把它當作01揹包做一下;因爲最多隻有兩個附件,每個物品的狀態只有三種(沒,有一個,兩個),分別當作01揹包做一下,即分爲4個01揹包。然後比較四個揹包總的最大值。 #in

原创 洛谷p1725琪露諾

原題 這個人在i處只能跳到i+l~i+r處,用dp會超時,用貪心無法得出最優解(後面的值得不到)。 那麼逆推,最後的狀態固定,並且通過區間,可以判斷使用單調隊列,每個點i由i+l~i+r的最優值推出 #include<iostream>

原创 洛谷p1092合唱隊形

原題 如果有人不知道最長上升子序列請先去看它。 題意就是要找中間高,兩邊矮的隊伍,因爲可以踢人,所以所求隊形不一定在原序列中連續 就聯想到最長上升子序列,從前面求最長上升子序列g[ ],從後面求最長上升子序列f[ ] 每一個值的兩方子序列

原创 洛谷p1419尋找段落

原題 看到小數,想一下可不可以二分,如果二分怎麼判斷。 讓每個值去減mid,找到一個正值的段落即可,如果沒有l和r的限制,f[i]=max(f[i-1],0)+a[i]-mid即可。但由於l和r,可以使用單調隊列,最小的最優,使你所求的區