原创 洛谷 [P1314] 聰明的質檢員(NOIP2011 D2T2)

一道二分答案加前綴和 題目中已經暗示的很明顯了 “儘可能靠近” “ 最小值” 本題的主要坑點在於 long long 的使用 abs函數不支持long long !!! #include <iostream> #include

原创 一些應該注意的問題

樸素的素數篩法中 bool chk(int x){ if(x==1) return 0; if(x==2)return 1;//一定要特判2 if(!(x&1)) return 0; int t=s

原创 洛谷 [P3110] 馱運

題目略帶一點貪心的思想,先跑三遍最短路(邊權爲一,BFS比SPFA高效) 一起跑總比分開跑高效,枚舉兩人在何點匯合,輸出最小值。 #include <iostream> #include <cstdio> #include <a

原创 洛谷 [P2661] 信息傳遞

求有向圖的權值爲一的最小環 並查集做法 維護一個dis[],表示i號元素到fa[i]的距離。 對於輸入的每兩個點u,v,詢問這兩個點的fa[]是否相同,如果相同就成環,維護最小值,mi=min(mi,dis[u]+dis[v]+

原创 NOIP要注意什麼

(https://www.cnblogs.com/shingen/p/7801970.html) 這篇東西將永遠置頂到我的OI生涯結束,我也會根據實際情況而做修改,希望也能幫助到其他的OIER。一、競賽過程 step1:審題(30分鐘

原创 洛谷 [P1156] 垃圾陷阱

首先有序化垃圾被丟入的時間,然後用揹包的解法, 一維數組f[high]=life 表示在垃圾堆high高度的時候,奶牛可以存活life的時間 對於每件物品,循環從d~0 如果這個高度的生命值不小於這個垃圾丟下來的時間 如果 高度+

原创 洛谷 [P1282] 多米諾骨牌

這道題是一道揹包問題,考慮一個揹包, 顯然如果我們直接設dp[i]表示前i個使差值最小所需的最少翻轉次數,是具有後效性的。 所以我們將直接求最值,改爲求某個值是否可行,這種求最值轉變爲求可行性的思想是非常實用的。 狀態 dp[i][j]

原创 洛谷 [P1578] WC2002 奶牛浴場

本題是一道用極大化思想求最大子矩陣的經典題目。這個題目很出名,可以在百度搜索王知昆國家隊dalao的論文,其中說的非常詳細。 先枚舉極大子矩形的左邊界,然後從左到右依次掃描每一個障礙點,並不斷修改可行的上下邊界,從而枚舉出所有以這個定點

原创 聲明

由於種種原因,此博客的內容較爲混亂,僅供本人複習參考,請移步至新博客 本博客仍會更新

原创 尺取法

尺取法: 顧名思義,像尺子一樣取一段,尺取法通常是對數組保存一對下標,即所選取的區間的左右端點,然後根據實際情況不斷地推進區間左右端點以得出答案。之所以需要掌握這個技巧,是因爲尺取法比直接暴力枚舉區間效率高很多,尤其是數據量大的時候,所

原创 洛谷 [P1387]最大正方形

本題非常有趣。 (n^6) 枚舉四個端點,每次遍歷矩陣求解。 (n^4) 先處理前綴和,枚舉四個端點,每次比較前綴和和正方形面積。 (n^3) 枚舉左上方端點,在枚舉邊長,前綴和優化 (n^2logn) 枚舉左上方端點,發現條件是

原创 洛谷 [P1890] gcd區間

因爲本題的數據範圍很小,所以可以預處理一個二維數組,O(1)查詢,但是這是一道區間上的題,並且gcd有區間可加性,所以想到了用線段樹來維護,然而此題並不用修改,ST表有着比線段樹更小的常數。 #include <iostream> #in

原创 高精度模板

高精度GCD #include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cstring> #include <cmath

原创 洛谷 [P1403] 約數研究

本題的思想很好 首先如果暴力枚舉每個數的約數個數,一定會超時,那麼我們就從約數的角度考慮,題目中問的是1~n的約數個數和,那麼我們就枚舉約數,看每個約數在1~n中出現過幾次。 #include <iostream> #include <c

原创 洛谷 [P1220] 關路燈

本題是一道區間DP,很容易設計出狀態, dp[i][j]代表關掉i到j的路燈所耗的電量,但是對於新到一個路燈來說,可以是原來直接來的,也可以是掉頭來的,於是還需要添加一維 0代表在區間的左端,1代表在區間的右端。從最開始所在的地方擴展。