對於乙個線段,要不就只買票,要不就用ic卡(貪心嘛)
所以只要比較這兩種策略,取較大值就好。
rep(i,1,n-1)
rd(n),rd(m);
while(m--)
rep(i,1,n)
rep(j,1,n)
構造相鄰的兩頭牛,看能不能貪心,且看需要滿足什麼條件的時候才能貪心。
設有相鄰的兩頭牛a,b,來討論一下在滿足什麼條件的的情況下a放在b上面比b放在a上面更優:
設放在a,b上面的牛的總重為w
i:a放在b上面
a的壓扁值:w-sa
b的壓扁值:w+wa-sb
ii:b放在a上面
a的壓扁值:w+wb-sa
b的壓扁值:w-sb
要使a放在b上面比b放在a上面更優,
則max(w-sa,w+wa-sb,) < max(w+wb-sa,w-sb);
易證w-sa < w+wb-sa,w-sb那就轉化成了使w+wa-sbwa+sa < wb+sb
綜上,當滿足這個條件的時候,a放在b上面比b放在a上面更優;
那麼我們以wi+si為關鍵字從小到大排序,(此時已經確立各奶牛的位置),那我們從上到下利用字首和掃一遍最小的壓扁值就好啦。
int n,m;
const int n=5e4+10;
struct nainiu\)
\[\leq
\]*排序不等式:
易知每個同學的等待時間wait[i]是單調遞增的
那麼總等待時間就是sigma wait[i] * 自己接水的時間t[i],
根據排序不等式,最小的總等待時間應該是逆序和。
好吧上面在胡扯,這只是乙個顯然的貪心
/*translation:
設有n個正整數(n≤20),將它們聯接成一排,組成乙個最大的多位整數。
例如:n=3時,3個整數13,312,343聯接成的最大整數為:34331213
solution:
sort 排序字串是不用加cmp的,自帶operator (字典序)//sort對字串排序只能是c++中string型別
按長度排序加乙個a.length就可以了 記住cmp裡的條件是return小的條件
note:
*字串排序
date:
2019.07.10
*/string a[25];
bool cmp(string a,string b)
• 哈夫曼編碼
• kruskal求最小生成樹
• dijkstra求單源最短路
複習樹上點差分
power[u]++,power[v]++;
power[lca(u,v)]--,power[fa[lca(umv)]]--;
debug:
1.打樹剖lca的時候return 了深度大的點^^^^^^^^我真是個智娃。
2.不看輸出格式,明明1a的……
django 1 應用開發基本套路
django admin startproject mysite 修改幾個配置項 language code time zone use tz 在 models.py 檔案中編寫資料模型 在admin.py 檔案中註冊應用 在 views.py 中編寫檢視 在應用目錄下面建立資料夾templates...
C 基本語法 day1
感謝!正在苦惱不知從何學起的菜鳥!include using namespace std main 是程式開始執行的地方 int main c 語言定義了一些標頭檔案,這些標頭檔案包含了程式中必需的或有用的資訊。上面這段程式中,包含了標頭檔案 using namespace std 告訴編譯器使用 ...
基本演算法學習day1
反轉陣列 leecode242.有效的字母異位詞 方法 建立26位的int陣列,用來存放對應第幾個字母的個數 遍歷 s讓相應的值 遍歷 t讓相應的值 最後如果陣列中有乙個值不為0則返回false 給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anag...