模擬測試53

2022-05-06 20:54:08 字數 894 閱讀 4123

t1:

我們不僅可以維護差分,還可以維護差分的差分,兩次字首和即可。

注意區間可能延伸到矩形之外,特判一下即可。

時間複雜度$o(n^2)$

t2:可以狀壓dp或記憶化搜尋。

記錄狀態為當前哪些小球被拿走了,然後逆推轉移就行了。

但是小球的顏色只有兩種,我們可以將狀態定義重設為剩下小球的顏色。

這樣大大減少了狀態數。

時間複雜度$o(nk2^)$

t3:dp神題。

根據貪心思想,一條邊至多會被覆蓋一次。

因為如果一條邊被兩條路徑覆蓋,從這條邊兩側截開這兩條路徑一定能使答案更優。

以二元組的形式進行dp,要在first盡可能小的情況下使second盡可能小。

設$dp[i][0/1]$表示在以$i$為根的子樹內,有/無向上延伸的路徑的方案數。

則對於每個節點,我們可以將所有兒子延伸上來的路徑兩兩匹配,只有最大化匹配,first才會盡可能優。

就用兩個變數$now1$與$nxt1$和$now2$與$nxt2$分別滾動記錄該節點有奇數個路徑和有偶數條路徑的最優值。

$now1$初值為$inf$,$now2$初值為$0$,列舉所有兒子:

$nxt1=min(now1+dp[y][0],now2+dp[y][1])$

$nxt2=min(now1+dp[y][1],now2+dp[y][0])$

$now1=nxt1,now2=nxt2$

實質上就是對所有兒子進行匹配,求出最優方案。

然而方案是分奇偶的,如果當前兒子中有偶數條路徑,不延伸的情況更優,反之延伸的情況更優。

然後討論該點的限制,考慮該點是否可以向上延伸,是否必須向上延伸。

上面的$now1$及$now2$僅考慮了子樹內部,用加一調節即可。

時間複雜度$o(n)$

csp s模擬測試53

有時間就多寫兩篇。t1 對於乙個矩陣,每次給乙個下三角 半個正方形 的矩陣加上s,求最終元素。這個題是差分方面的,最終一次詢問,那麼我們就可以搞,一開始沒思路。後來想了想序列上差分是什麼?就是代表乙個點比前乙個多多少,所以修改l,r就是l s,r 1 s,這樣最終一求字首和就知道了原序列。在想一想如...

csp s模擬測試53u,v,w題解

題面 u 用差分優化修改 二維差分 給 x1,y1 x2,y2 加上s d x1 y1 s,d x1 y2 1 s,d x2 1 y1 s,d x2 1 y2 1 s 定義2個差分陣列d1,d2,分別記錄豎列和斜邊的差分 d1 r c s,d1 r l 1 c s,d2 r c 1 s,d2 r l...

5 3 模擬EXCEL排序 25分

excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。輸入的第一行包含兩個正整數n n le 10 5 1 0 5 和c c,其中n n是紀錄的條數,c c是指定排序的列號。之後有 n n行,每行包含一條學生紀錄。每條學生紀錄由學號 6位數字,保證沒有重複的學號 姓名 不超過8位且不包...