原创 TopCoder SRM461C: FencingGarden 題解

我們首先可以發現一個性質:因爲只會有兩個小段是被切出來的,而籬笆有三條邊,所以必然有一條邊是由未被切割的籬笆構成的 我們設這條邊的長度爲x,所有籬笆的長度和爲s,有兩種情況 1. 這條邊與牆平行,則面積S=xs−x2=−12x

原创 Codeforces #985F: Isomorphic Strings 題解

感覺雖然是edu round的倒數第二題但還蠻簡單的 我們分析那個同構的定義,可以理解爲“該一樣的字符要一樣,該不一樣的字符要不一樣”,那麼對於每一種字符我們想一種辦法來表示他在子串中所有的出現位置(像一張有黑點的紙條),然後看

原创 AOJ2535: Texas hold 'em 題解

這就是一道純粹的巨模擬題 非常暴力的進行枚舉,剩下的兩張牌有45∗44÷2=99045∗44÷2=990 種可能性 從七張裏面選五張有C57=1176C75=1176 種可能性,這兩個相乘肯定是不會炸的 然後就巨模擬就好

原创 BZOJ1177: Oil 題解

Description 採油區域 Siruseri政府決定將石油資源豐富的Navalur省的土地拍賣給私人承包商以建立油井。被拍賣的整塊土地爲一個矩形區域,被劃分爲M×N個小塊。 Siruseri地質調查局有關於Navalur土地

原创 BZOJ2219: 數論之神 題解

非常神的數論題,用到了中國剩餘定理,原根,指標,BSGS,exgcd等一系列知識 轉載一片來自regina8023的博客 戳這裏 附上我的代碼 #include <cstdio> #include <iostream> #i

原创 AtCoder Grand Contest 024E: Sequence Growing Hard 題解

神仙題,感覺思路太神奇 題目等價於每次向序列裏面插入一個新數,問有多少種方案 我們考慮怎樣插入一個新數是合法的,假設當前插入的數是cur,那麼有兩種情況 1. cur放在序列的末尾 2. cur之後第一個與cur不一樣的數

原创 Codeforces #316E3: Summer Homework 題解

這樣的題肯定要維護線段樹,重點是如何維護裴波那契數列使得可以很快的進行合併操作 這裏給出一個很騷的操作: 對於每個區間維護兩個值: 1. f0∗al+f1∗al+1+...f0∗al+f1∗al+1+... 2. f1∗a

原创 ZOJ2314: Reactor Cooling 題解

無源匯的上下界可行流的模板題 上下界的做法可以參考Algorithm Design一書,裏面寫的很清楚 我們考慮對每個點i維護一個d[i],表示這個點的surve和demand情況,爲正表示demand,爲負表示serve

原创 比較學習-BZOJ3450: Easy 題解 和 BZOJ4318: OSU! 題解

這兩道題長得幾乎一模一樣,只不過easy求的是平方,OSU求的是立方 於是決定把這兩題一起切掉,沒想到這其中大有玄機,還是我naive啊… 我們先看easy這題 考慮期望dp;dp[i]表示考慮到第i位的時候以i結尾的連續一

原创 AtCoder Regular Contest 097D: Equals 題解

我們可以把這種交換規則想象成一張圖,有一個NN 個點的圖,題目中的(xi,yi)(xi,yi) 相當於圖中的邊 我們可以發現一個連通塊內的元素是可以任意互換位置的 所以對於每一個a[i]a[i] ,我們只要判斷第ii 個格子和

原创 AtCoder Regular Contest 097F: Monochrome Cat 題解

這道題的思路非常巧妙 首先我們可以把那些全部都是黑點的子樹扔掉,他們是不會被遍歷的 這時,剩下的樹的所有的葉子都是白色的 我們先考慮終點和起點重合的情況 這時如果我們想把它全部變黑的話必須遍歷整棵樹 並且我們發現,無論以

原创 AtCoder Grand Contest 024D: Isomorphism Freak 題解

很容易想到最終的樹有兩種形態 1. 一個點下面掛着若干棵完全相同的子樹 2. 兩棵完全相同的子樹連在一起 第一部分的答案是很好算的,因爲我們發現同一層的節點可以塗一樣的顏色,所以我們要在原樹裏面找一個地方把原樹“折”成兩半,

原创 BZOJ2597: 石頭剪刀布 題解

非常難的費用流題 我有考慮過反過來想,看最少能扣掉幾個環,然後用費用流做,但就是建不出模型 這題的想法實在是太巧妙了 考慮一個三元環如果被破壞,那麼一定有一個點出度爲2 更一般的,如果最後的圖裏面一個點的出度爲x,那麼由他

原创 AtCoder Regular Contest 080C: 4-adjacent 題解

思維題 首先所有的數可以分成能被4整除的,能被2整除但不能被4整除的和沒有2因子的三類 顯然如果沒有最後一類的話是顯然可以的,所以我們只要考慮是否每個最後一類的數都能保證其左右都是第一類數 如果沒有第二類數,那麼只要第一類數

原创 AtCoder Regular Contest #097C: K-th Substring 題解

總共有N2N2 個字符串,每兩個字符串比較的複雜度是O(n)O(n) ,所以全部拉出來排序的複雜度是O(n3logn)O(n3logn) ,不能通過 但注意到題目的限制條件k≤5k≤5 ,我們考慮到一個串的前綴的字典序一定比它小