USACO月賽題解 第四講 貪心

2021-06-20 09:29:20 字數 1276 閱讀 5332

彙總見 

這一部分的題目也很經典,雖然是一次排序解決問題,但有難度

第15題 奶牛雜技 acrobat

這種題基本上要按某種關鍵字排序,所以考慮相鄰兩頭牛,他們上面的牛重量加起來是w0,若a在b上面,a受到壓力為w0 - sa b受到壓力為 w0 + wa - sb.再寫出反過來的情況,進行一下分析即可,最後是按w+s排序。據說把未經分析的帶max的式子直接作為關鍵字排序也行。

struct node;

int cmp(node a, node b)

node a[50010];

int n;

int main()

sort(a + 1, a + n + 1, cmp);

ll ans = -inf, now = 0;

rep1(i, n)

printf("%lld\n", ans);//while(1);

return 0;

}

第16題 兩道工序 mqueue

直接分析相鄰兩頭牛,然後把較複雜的式子作為關鍵字排序就能a了,排序關鍵字是

return a.fi + b.se + max(a.se, b.fi) < a.se + b.fi + max(a.fi, b.se); 。。。

/*

開始感覺是按第一項工作時間排序,造出了反例

感覺是按第一道減第二道排序,寫寫看

又找到反例 .. 但反例找錯了。。

看題解 max(ad + bd + bc, ad + ac + bc) <=

max(ac + bc + bd, ac + ad + bd)

<=>

min(bd, ac) > min(ad, bc)

這句不懂

但再後面的關鍵字處理用不著,可以直接a

其實看不懂的這步也不用,直接比就行了,常數都沒有影響

*/ using namespace std;

struct node;

bool cmp(node a, node b)

node a[30000];

int n, s[30000], t[30000];

int main()

printf("%d\n", t[n]);

//while(1);

return 0;

}

USACO月賽題解 第四講 數值計算

彙總見 感覺這部分usaco的題型和oi題還是不大一樣的,做下來意思不大 第3題,醜數 humble 這題還是很經典的,training裡也有。有兩個樸素想法,乙個是造一堆數然後排序,另乙個是已知前k個數推出第k 1個數的方法,第k 1個數由前k個數中的乙個乘上乙個素數得到,這麼做是平方級的,已經接...

USACO月賽題解 第三講 排序

彙總見 這一部分的題目也很經典 第10題 重排乾草 restack 這種題要麼0分要麼滿分,和 訓練指南 的第一章例3幾乎一樣,通過代數分析將題目轉化 最後變成求中位數的題目,o n 還是o nlogn 隨意 bzoj裡出現了兩道和這題幾乎一樣的題目 錯了兩個點 修改資料型別 還是錯這兩個點 發現輸...

視覺SLAM十四講第四講

主要目標 理解李群與李代數的概念,掌握 so 3 se 3 與對應李代數的表示方式。理解 bch 近似的意義。學會在李代數上的擾動模型。使用 sophus 對李代數進行運算。旋轉矩陣自身是帶有約束的 正交且行列式為 1 它們作為優化變數時,會引入額外的約束,使優化變得困難。通過李群 李代數間的轉換關...