原创 POJ 2777 Count Color(線段樹、lazy思想)

大意是一塊定長的木板,在上面塗顏色,每次塗一個區間,當詢問某個區間時,要返回這個區間中的顏色數目。 這道題目其實和3468非常之像,也是要更新區間,也用到了lazy思想。可能略有不同的是,這道題目有個用到位運算的小技巧。由於總顏色數目較少

原创 POJ1256 (C++ compare函數)

問題:   有一個只含大小寫字母的字符串,給出所有該字符串的排列,以字典順序輸出。其中 'A'<'a'<'B'<'b'<...<'Z'<'z'。 方法:   只需調用C++ STL中 next_permutation() 和 sort()

原创 POJ2718(枚舉 + 貪心)

問題:  有N個0到9的數字,互不重複。用這些數字組成2個整數,每個數字只能用一次,且必須用盡所有數字,且0不能在第一位(除非組成的整數是0)。求組成整數的差的最小值。 思路:   可以將所有情況分爲兩類:     (1)N是偶數:可以將

原创 HDU 4221 Greedy?(DP)

題目是這樣的:有N個任務要完成,每個任務都有一個時限,和完成這個任務所需要的時間。如果完成時的時間超過了時限,就要懲罰跟超過的時間相同的分數。若使罰分中的最大值最小,這個最小值是多少? 做完才發現有點像DP。。 先把這些任務按 deadl

原创 HDU 1231 最大連續子序列(DP)

給定K個整數的序列{ N1, N2, ..., NK },其任意連續子序列可表示爲{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K。最大連續子序列是所有連續子序列中元素和最大的一個, 例如給定序列{ -

原创 POJ 1113 Wall (凸包)

給一個多邊形(可能是凹的),然後給出一個最小周長圍住這個多邊形,圍的牆至少要離這個多邊形一定距離。 凸包,最後加上求周長即可。 #include<iostream> #include<algorithm> #include<cmath

原创 POJ3781-3786(Unknown Summer Training ID 8911 0x03 on hust oj)(枚舉、貪心、動態規劃)

一共9道題,完成前6道。 A:   問題:輸入10個數,輸出10個數中第3大的數。   STL sort函數水過。 B:   問題:輸入n個數字,將這些數字分成若干組,使每組數字的和相同,只有連續的數字才能被分在同一組。給出一種分法

原创 LightOJ 1042 Secret Origins(二進制、STL)

將一個數字化爲二進制,並算出這個二進制數所含‘1’的個數,求出最小的比這個數大的並含相同‘1’個數的數。 先將二進制數轉化成 string,再用next_permutation() 即可。不過還有一種情況,就是這個二進制數已經是最後一個排

原创 POJ2153 (C++ map)

問題:   存在N個學生,並有M次考試,分別計算每次考試後某個人的綜合排名。 方法:   聲明一個從 string 到 int 的map類,其中 string 對應名字, int 對應分數。 hint:   可將該 map 類看做以 st

原创 POJ3629 2436(CUHK summer training on 28 JUN 2012)(隊列、二進制)

AB水過。 C:POJ3629 打牌模擬題。K張牌中有N張好牌,每次發牌前將前P張放在最底,如何安排牌的位置使每次某人拿到的牌都是好牌。   用數組自編一個queue可以AC,然而使用C++ vector 或者 queue 都會造成TLE

原创 LightOJ 1136 Division by 3(取模)

一些數:1, 12, 123, 1234, ..., 12345678910, ... 然後給出兩個數A, B,求出第A個數和第B數之間又多少個數能夠被3整除。 首先要運用到一個性質: 一個數的數字和相加能被三整除,那麼這個數也能被3整除

原创 POJ 2528 Mayor's Poster(還是線段樹,外加離散化)

題目意思是在一道牆上貼海報,後面貼的海報可能把前面的覆蓋,之後給出一個區間,要輸出這個區間內能夠看見的海報數目。 乍一看非常像POJ 2777塗顏料那道題目,仔細一想還是有很大的不同。首先海報數量十分巨大,不可能用上位運算,這也意味着每次

原创 LightOJ 1337 The Crystal Maze(第一道DFS)

輸入一類似迷宮的圖,迷宮中有牆,有水晶,問如果降落在迷宮中某一點,迷宮中除牆意外能隨意走動,最多能收集到多少水晶。雖然一看就是深搜或者廣搜,由於之前真沒有做過這類題目,大一下學的算法也忘的差不多了,全靠自己想出來。思路很簡單,從起點開始,

原创 UVa 681 Convex Hull Finding (凸包,Graham‘s Scan)

這道題目沒有直接給出一些點,而是給出了一個凹多邊形,讓求凸包。這讓我誤以爲不用先根據極點排序了,可以直接scan...後來發現好多反例,還是老老實實來。 Graham‘s Scan 其實步驟不復雜:(1)選出最左下的點;(2)對剩下的點按

原创 HDU 1159 Common Subsequence(還是DP)

給出兩個字符串,求出他們最大的 Common Subsequence。所謂字符串A的 subsequence,就是A所含的字符的一部分或者全部組成的字符串,並且字符的順序和A中出現的順序相同。 用f [ i ][ j ]表示處理到字符串A