山師訓練賽1 21補題

2021-10-02 23:58:22 字數 2642 閱讀 3988

乙個機場有若干架飛機,從t = 1時刻開始起飛,但現在由於一些原因,必須從k + 1開始重新安排飛機班次,每架飛機延誤都有乙個損失值,要使得每架飛機的損失值乘以延遲時間的和最小。

一道貪心的題目,貪心策略是k + 1之後的航班全部都按原時間起飛,k + 1時刻損失最大的起飛,然後按除開按原時間起飛的航班,其他按從大到小排序,然後計算和,再用乙個結構體儲存一下航班的原班次,開始想省事用pair存但不知道為啥好像是爆了還是咋。。反正值不太對。。卡了6號點,換了結構體以後又忘記爆int這回事了。。

#include

#include

#include

#include

using

namespace std;

const

int n =

3e5+10;

struct node

}a[n]

;int n,k;

priority_queue q;

int b[n]

;int

main()

for(

int i =

1; i <= k;i++

)long

long sum =0;

for(

int i = k +

1;i <= n + k;i++

)printf

("%i64d\n"

, sum)

;for

(int i =

1;i <= n;i++

)else

}return0;

}

乙個數x可以被拆成x - p,p且p是正整數,兩個人拆數,誰先沒法拆了就輸了。

這道題我是先在輸入時把每個數重新處理下a[i]–,然後再求個字首和,判斷一下奇數偶數就行。

#include

#include

#include

#include

using

namespace std;

const

int n =

1e5+10;

long

long a[n]

;long

long b[n]

;int n;

intmain()

for(

int i =

1;i <= n;i++

)for

(int i =

1;i <= n;i++

)else

}return0;

}

有乙個n * m的農田,有p個守衛可以分別守衛農田的(x1x_

x1​,y1y_

y1​)到(x2x_

x2​,y2y_

y2​)的部分,後有q個怪物襲擊,問怪物能否襲擊成功。

這題主要用二維差分和二維字首和解決問題:

這裡先補充下二維差分和二維字首和的原理

求這個綠顏色的矩陣的和其實就和圖中公式一樣,先取3x5矩陣的所有值,然後減去1x5的部分和2x3的部分,然後黑色的部分減了兩次需要加上。

再求每個小塊的和其實也好求,不過不同於上面先做減法再做加法,這裡是先做加法再做減法,要得到(2,3)的字首和,要先加上1x3部分的值然後再加上2x2部分的值,因為深藍色的部分加了兩次所以需要減去,再加上(2,3)的值就是整個2x3部分的和

二維差分其實也差不多

差分就是先讓(x1x_

x1​,y1y_

y1​)右下角的矩陣先全部加上c,然後再效仿第一步先加再減即可。

這裡可以把整個過程看成乙個二維差分的過程,守衛每個守衛守護的部分全都加上1,然後再把》1的格仔變成1,然後怪獸攻擊的面積肯定等於那個矩陣的和,如果不等於肯定有守衛守不到的地方。

#include

#include

#include

#include

using

namespace std;

int n,m;

int p,q;

intmain()

for(

int i =

1;i < n;i++)}

for(

int i =

1;i < n;i++)}

}for

(int i =

1;i < n;i++)}

cin >> p;

int sum;

while

(p--

)else}}

return0;

}

訓練賽補題

codeforces 1041b 思考 1 求最大公約數的時候除法比減法要快,以後能用除法去處理大數就不要用劍法去處理大數 codeforces 1041c 題意 其實就是給定了n個數,問間隔最少d,那麼這樣最少是幾組,並且哪個是哪一組的 思路 就是直接進行比較,先進行按照數值進行從小到大排序,如果...

2023年1月23日山師訓練賽2

題目鏈結 題意 有 n 個人,每個人會且僅會一種語言.有 m 個電影,電影語言分為 音訊語言 和 字幕語言,且同場電影的音訊語言和字幕語言不同.當人 電影時,如果他會該電影的音訊語言,他會非常高興.當人 電影時,如果他會該電影的字幕語言,他會比較高興.現要求選擇一場電影,使得非常高興的人數最多,若解...

didi暑期訓練賽補題1

b cf 371c 題意 能組成最多的漢堡,條件是 輸入字串b,s,c的個數 思路 二分查詢值能夠使總值 n的答案,推出總和公式 ll max ll 0,m ans1 nb pb ll max ll 0,m ans2 ns ps ll max ll 0,m ans3 nc pc include de...