csdn同步
原題鏈結
簡要題意:略。
資料範圍:\(1 \leq n,k \leq 10^9\).
考慮乙個事情。這玩意兒必定滿足,上面方陣的集合裡有的,下面沒有。左邊有的,右邊沒有;也可以都有。問題不大。
於是我們可以獨立地看待各個元素的情況。
對於 \(\forall \space [1,k] \space\) 的元素,很顯然,每個元素,在方陣內,選擇乙個 「左上方的聯通塊」 進行覆蓋,\(2^n\) 種是不難得到的。
於是就是 \(^k = 2^\),你直接快速冪就行。
時間複雜度:\(\mathcal(\log n \times \log k)\)
#includeusing namespace std;
typedef long long ll;
inline ll read()
ll x=0;while(ch>='0' && ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x*f;}
ll n,k;
const ll mod=1e9+7;
inline ll power(ll x,ll y) return ans;
}int main()
JSOI2015 染色問題 題解
傳送門 容斥原理 把三個容斥套一起 我們列舉至少有i ii行沒有染色,至少j jj列沒有染色,至少k kk種顏色沒有用到,那麼剩下 n i m j n i m j n i m j 個格仔每個都有c 1 k c 1 k c 1 k種選擇 可以在剩下c k c kc k種顏色中挑一種,也可以不染色 因此...
題解 JSOI2015染色問題
好像這個容斥還是明顯的。一共有三個要求,可以用組合數先滿足乙個,再用容斥解決剩下的兩個維。反正這題資料範圍這麼小,隨便亂搞都可以 用 a k i 表示使用 k 種顏色,至少有 i 列沒有染色的方案數,可以容斥預處理得到使用 k 種顏色染色使得每行每列均被染色的方案數。然後再容斥一下保證每種顏色都用上...
題解 JSOI2015 圈地
發現一種地要麼歸 a 要麼歸 b 若相鄰兩塊歸屬不同還有額外代價 那麼 a 買就連源點,b 買就連匯點 總收益加上這些值 中間連代價的雙向邊 答案為總收益減去最小割 include include include include include include const int n 160005 ...