原创 糖果[scoi]

題目鏈接:https://www.luogu.org/problem/P3275 有一堆限值條件然後還要求最值,就有些想到了差分約束。 大於可以轉化成大於等於+1 對於約束a>=b,我們可以連一條邊由b到a,這就意味着b至少比a要大1。

原创 Stall Reservation POJ3190

很好想的貪心策略:能用之前的就用之前的,不然就不用。 具體的實現可以用優先隊列呀,emmm可以重載操作符會好寫一些。 #include <bits/stdc++.h> using namespace std; const int ma

原创 表達式求值(TYVJ1043)

我他喵的被這題氣死好吧。(2年前的我調了3個小時,2年後調了1.5個小時) 求一箇中綴表達式的值(小學生都會好吧) 首先:計算機最喜歡的一定是後綴表達式,我們只要從頭到尾遍歷,然後碰到數字就壓入棧,碰到運算符就直接取出棧頂的2個元素直接進

原创 poj2054-color a tree(貪心)

一個錯誤結論:儘量讓權值最大的先被選走。 而我們可以很容易的構造出一個反例(不贅述了) 但由這個錯誤的結論,我們可以得到一個正確的結論:對於當前權值最大的點,一定在他父親被染過色後第一個被染色,相當於是緊接着父親被染色。 根據這個原則,我

原创 單調棧與單調隊列:最大子序和+city game+largest rectangle in a histogram

city largest rectangle in a histogram 從1-n遍歷,取出每次以i爲右邊界(完全取到)最大的面積。 顯然,i最多可以延伸到的地方是比他高或者等的第一個長條,算出每次面積的最大,再一起取max 單調棧即可

原创 擴展歐幾里得算法與其應用

擴展歐幾里得的證明及其算法 定理:對於任意一對整數a,b,一定存在x,y使得ax+by=gcd(a,b) 證明:假設a>b。 1.若b=0,一定存在x=1,y=0,使得ax+by=gcd(a,b) 2.若b>0,假設存在bx+(a%b)y