原创 Codeforces 837F 二分 and 組合數學

題意: 給你一個序列,不斷求前一個序列求前綴和數組,問你最早在第幾個數組中出現大雨等於k的數字 解: 1、顯然最後一個數字最大 2、我們求在第幾次前綴和中,每一個位置上的數字對於最後一個位置上的貢獻 3、找規律發現和組合數有關係 位置i在

原创 Codeforces 846E Chemistry in Berland 貪心 and 爆ll

題意:給一個樹每個點有值,並且告訴你每兩個相鄰點直接的轉化效率,問你最後能不能滿足題目的每個物質的數量要求。 解: 每個點貪心地向父親索取,如果多了就直接給父親, 在傳遞物質的過程當中不能出現爆ll, 方法是 在每次用double判斷一下

原创 Codeforces 846F Random Query 貢獻

給定一個數列AA,隨機選取兩個值ll,rr(等概率,可以相等),進行以下操作: if l > r : swap(l,r) 對數列A中l,r區間內的數去重得到數列B 求數列BB的期望大小。 解:考慮每一個數字的貢獻 ,這裏要考慮對數問題, 

原创 將一個數列分成兩部分求一種分組方式使得兩部分異或和的差距最小

  1.貪心考慮二進制下每個數字的每一位,偶數個的話,那麼就不用考慮這一位的分組,怎麼分配在答案裏這一位都是0 2.只考慮奇數的位,那麼答案中一定是  A-B 的形式 假設A>B  那麼首先另A=0,那麼異或上最大的線性基,並且盡力吧現

原创 Hdu 6231 K-th Number 二分+ 尺取

題意:給你一個A序列,從長度超過K的區間裏面的第k大元素放入B序列,問B序列裏面的第M大。n(1e5) a[i]1e9 解: 1、可以猜到是二分,但是具體怎麼二分還是不好想的。 2、可以先想到元素越大的話,在B序列裏更靠前,越小在B靠後。

原创 Codeforces863F Almost Permutation 最小費用流

給你n個數 剛開始給定每個數的範圍1到n,有q次限制,限制L,r的  範圍  問最後可能的一種序列,使得重複的數字儘量的少,cost=sigma( cnt(i)^2) #include<bits/stdc++.h> #define en

原创 CSU 1808 地鐵 2016湖南邀請賽 最短路 Dijkstra

CPCCamp 有 n 個地鐵站,用 1,2,…,n 編號。 m 段雙向的地鐵線路連接 n 個地鐵站,其中第 i 段地鐵屬於 ci 號線,位於站 ai,bi 之間,往返均需要花費 ti 分鐘(即從 ai 到 bi 需要 ti 分鐘,從 b

原创 2016 湖南省賽 Tree Intersection csu 1811 區間統計顏色 (主席樹 or 樹狀數組)

題意:問你每條邊,在只有這個邊不考慮的情況下,兩個數共有顏色的數目。 解: 可以轉化爲 dfs許的情況下,求一段區間的的顏色數目和一段區間獨有的顏色數目。 1、求一段區間的顏色數目是一個經典題目,拓展還有求一段區間每一個顏色最多貢獻k的情

原创 HDU 6237.A Simple Stone Game 貪心 ,素數 2017ccpc哈爾濱

題意:讓你轉移n堆石子,每次最多轉移1個,問最少的次數使得每堆石子的數量是x的倍數 解: 考慮,最後x一定也是sum的質因子。 對所有a[i]求餘, 那麼大的餘數+上一部分就能變成mod 小的餘數分到別人身上 自己變成0 只從將大的變成m

原创 Codeforces 600E 線段樹合併

題意:問你最多每一個子樹當中,出現次數最多的顏色的編號之和。 解:線段樹合併 #include <bits/stdc++.h> #define en '\n' #define Swt signed main using namesp

原创 Codeforces 846D Monitor 二分 and 二維樹狀數組

問圖上什麼時候存在一個邊長大於等於k的正方形 #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #i

原创 Codeforces 837G Functions On The Segments 主席樹

題意:給你n個方程  每次詢問l,r,x, 問你 從第l到第r個方程f(x)的求和 #include<bits/stdc++.h> #define ll long long using namespace std; const int

原创 洛谷 P3224 [HNOI2012]永無鄉 線段樹合併

題意:不斷聯通一個圖,問每個聯通塊裏排名第k的***原來編號*** #include<bits/stdc++.h> #define ll long long using namespace std; const ll maxn =1e5

原创 HDU 4777 Rabbit Kingdom 區間內區間 and 容斥

 Long long ago, there was an ancient rabbit kingdom in the forest. Every rabbit in this kingdom was not cute but totall

原创 Codeforces 863E Turn Off The TV 差分 and 離散化

題意:給你N段線段,輸出任意一個可以刪掉的線段,刪掉之後不改變原來的線段覆蓋範圍。 解: 1.將數據離散化保存,每個線段貢獻3個數據,l,r,r+1 2、然後利用基於前綴和線段修改 3、線段樹查詢最值。 #include<bits/st