luogu 十一 基本套路 day1

2022-04-08 05:17:15 字數 1547 閱讀 2025

對於乙個線段,要不就只買票,要不就用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...