原创 BGSHOOT - Shoot and kill 離散化 樹狀數組或前綴和 ST表 模板題

先對出現的時間點離散化。 樹狀數組維護前綴和,表示n種動物的出沒。 ST查詢區間最值。 wa了很多次,其實離散化的時候把x、y、l、r全都加進去,會省很多事。 #include <cstdio> #include <vector> #i

原创 HDU 6049 Sdjpx Is Happy 貪心 區間DP 從簡單的情況着手思考

題意:給定一個全排列,玩家可以將其分成若干塊,並對每一塊排序,且可以進行一次塊交換。問玩家最多可以將原排列分成幾個塊,使得對原排列進行合法操作後能夠生成1~N的順序排列。 比賽的時候沒有開這道題,賽後補題的時候發現沒有遇到過這種題型,仔

原创 AtCoder Grant Contest 010 C - Cleaning dfs+邏輯+dp思想

題意:給定一棵樹,每個節點的權值爲Ai,每次可以挑選兩個葉子節點,將兩個葉子節點之間路徑上的權值-1。問最後能不能使得整棵樹的權值爲0。 解法:驗證解的存在性,就去試着找出一組可行解。這題從最末端的情況開始想就可以很容易想出dp。 隨便

原创 AtCoder Grant Contest 10 F - Tree Game 博弈 dfs

題意:給定一棵樹,每個節點有個權值,Alice和Bob輪流進行操作。 給定遊戲起點指針指向節點C。不斷進行下述操作。 1.將當前節點權值-1,然後將指針從該節點移動到相鄰節點。 出現一方不能移動(即指針指向的節點權值爲0)即爲輸。 解法

原创 HDU 6052 To my boyfriend 分情況處理 DP 容斥

題意:給定一個n行m列的矩陣,每個格子上有一個顏色,詢問任意選擇一個子矩陣,其顏色種類數的期望。n與m分範圍爲100。 解法: 我們定義矩陣的價值爲該矩陣的顏色種類數。顯然求期望的話,可以考慮求出所有子矩陣的價值之和,除以不同子矩陣的個數

原创 VIJOI 1243 生產產品 前5個點錯

兩份代碼 第一份只能過後5個點 第二份能過全部點 原因是dp更新的時候弄錯了。 hack數據: 5 2 1 1 1 1 1 1 1 5 5 5 5 5 正確答案 17 錯誤答案 13 總結,dp[i][j]要全部更新完之後,再去更新單調隊

原创 Codeforces Round #394 (Div. 2) F. Dasha and Photos 二維前綴和 矩陣神器

#include <cstdio> #include <algorithm> using namespace std; typedef long long ll; const int maxn=1005; const int maxk=3

原创 Codeforces Round #398 (Div. 2) E. Change-free 貪心 優先隊列

題意:你有無數的面值爲100的紙鈔和m個硬幣。收銀員有無數的紙鈔和硬幣,但是他不愛找錢。收銀員在第i天有憤怒值wi,若收銀員找紙鈔和硬幣的總個數爲x,則這一天他的憤怒程度爲x*wi,給定你每天要花錢的數目,以及起始時手裏的硬幣,要求輸出n

原创 Codeforces Round #394 (Div. 2) E. Dasha and Puzzle 構造 座標離散化

題意:給一顆樹,問是否能夠放到網格圖裏,保證只有橫邊和豎邊,且邊與邊不相交。 解法: 開腦洞,先想能不能找到這樣的樹,樹應該至少滿足一個要求: 1.根節點能有4個兒子,非根節點最多隻有3個兒子。 滿足要求1,理論上就一定能找到這樣的樹,

原创 HDU 6039 Gear up 2017 Multi-University Training Contest - Team 1 線段樹維護到樹根距離 區間修改 區間最值

照着題解慢慢寫。 http://bestcoder.hdu.edu.cn/blog/ 有幾個需要注意的地方: 1. 與父節點共邊的判斷,可以在dfs裏面處理。 2. 區分開具體點與共軸塊的區別。 #include <cstdio> #in

原创 Codeforces Round #378 (Div. 2) E. Sleep in Class 思維 沒弄很懂

#include <cstdio> #include <vector> using namespace std; typedef long long ll; const int maxn=1000005; int n,pre[maxn],

原创 HDU 5955 Guessing the Dice Roll AC自動機 高斯消元

這題把AC自動機模板和高斯消元的經典題拼在了一起。 AC自動機請轉HDU 2222。 高斯消元原型題請參考《挑戰程序設計競賽》第二版 288 頁的 Random Walk。 有了這兩題的基礎之後,這一題只是把 Random Walk 題中

原创 HDU 2222 AC自動機 模板

AC自動機模板題。 #include <cstdio> #include <cstring> #include <algorithm> #include <queue> using namespace std; const int max

原创 Codeforces Canada Cup 2016 F. Family Photos 博弈 策略分析 好題

題意:A和B博弈。有n個桶,每個桶裏有兩顆球,只能先拿走上面的球,再拿走下面的球,每顆球價值ai與bi,ai表示A拿走該球時獲得的錢,bi表示B拿走該球時獲得的錢。 遊戲目的:A和B均想使比賽結束時自己的錢比對方的錢多儘量多。 每輪中,玩

原创 HDU 6048 Puzzle 逆序對 計數 發現基本操作

8數碼問題的擴展,給定一個n*m的局面,問是否有解。局面按題目規則生成。 將此問題稱作擴展8數碼問題的話,通過觀察基本操作可以發現,對於x,在隻影響x右下角格子的前提下,我們一定可以移到指定的位置。這樣我們可以依次將1,2,3,...等