乙個機場有若干架飛機,從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...