YbtOJ 20077 計畫帶師

2022-06-13 15:12:10 字數 610 閱讀 2561

設 \(f[s]\) 表示選了集合 \(s\) 裡的作業做完,最小的代價。

由於最終方案要求字典序最小,所以我們要從後往前 dp,有轉移

\[f[s]=\min_(f[s\cup i]+\max(t[s\cup i]-d[i],0))

\]其中 \(t[s]\) 表示完成集合 \(s\) 裡的作業需要的時間。

然後記錄前驅輸出即可。

時間複雜度 \(o(t(2^n+2^n))\)。

#include using namespace std;

const int n=55,m=(1<<20);

int q,n,f[m],d[n],c[n],a[m],lg[m],pre[m];

char ch[n][n];

int main()

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

for (int s=0;s!=(1<

printf("%s\n",ch[lg[pre[s]]]);

} return 0;

}

雷達裝置 Ybtoj

有n nn個建築物,第i ii個建築物在笛卡爾座標系上的座標為 xi yi x i,y i xi y i 你需要在x xx軸上安裝一些雷達,每個雷達的偵察半徑均為d dd,要求每個建築物都至少被乙個雷達偵測到,求最少要安裝幾個雷達。第一行兩個正整數n,d n,dn,d。接下來n nn行,第i ii行...

YBTOJ 電路維修

思路 乍一看這題,沒有bfs的頭緒 但是,我們想到了spfa 我們可以把地圖中的每個點看成方格,這樣就有 n 1 m 1 個方格 如果兩點之間有線聯通,那它們之間的邊權就是0,否則就為1 然後spfa就可以了 include include include using namespace std i...

YBTOJ 守衛挑戰

有 n 項任務,有乙個數 k 每一項任務成功的概率是 p i 這裡與原題目不同,原題目是百分之 p i 這裡相當於 p i frac 成功後會使 k 加上 a i 問至少成功 l 次且最後 k leq0 的概率是多少。資料範圍 0 leq k leq2000,0 leq l leq n leq 20...