nyoj 229工程 dp 二分

2021-07-07 04:52:01 字數 989 閱讀 3010

時間限制:

1000 ms  |            記憶體限制:

65535 kb

難度: 6

描述 有n個工人做兩個工程a和b,每個工程都被分為相同的m份,給你第i個工人做a中的乙份需要的時間xi秒,和做b中的乙份所需時間yi秒,問最短需要多少時間可以完成這兩項工程。

輸入第一行是乙個整數t (1 <= t <= 100),表示有t組測試資料;

每組測試資料第一行有兩個整數 n (1 <= n <= 100), m (1 <= m <= 100).

接下來的n行,每行有兩個整數xi,yi;

輸出輸出最短時間,佔一行。

樣例輸入

1

3 20

1 12 4

1 6

樣例輸出

18

二分+dp驗證

#include #include #include #define max_size 104

#define inf 10000

int n,m;

int time[max_size][2];//time[i]記錄第i個人做a或做b的時間

int dp[max_size][max_size];//dp[i][j]表示前i個人一起做j件a工程能做的最大的b工程數

int find_max(int a,int b)

int check(int r)

//printf("(%d %d %d)",i,j,dp[i][j]);

} if(dp[i][m]>=m)

return 1;

//printf("\n");

}return 0;

}int solve()

return rb;

}int main()

printf("%d\n",solve());

} return 0;

}

dp 二分查詢dp判斷

題意 掃雷,在長度為 lenght 的街道上有 n 個地雷,再輸入每個地雷在街道上的位置,1 lenght 1e9,1 n 2000 現有排雷範圍為w,2w的一次性排雷裝置,1 w,分別由p q個。現問w的值至少為多大。思路 先二分找w,對於每次二分的值寫乙個函式進行判斷。用dp來判斷,設dp式 d...

nyoj720 專案安排 二分 dp

思路 dp i 表示前i個專案的最大收益,轉移方程很好寫dp i max,val i 表示第i個專案的價值,dp k 表示前k個的最佳收益,k滿足ed k st i 並且是最接近st i 的那個專案,即i需要找到乙個可以相容的專案,因此需要對所有專案按照結束時間公升序排序。但是不容忽略的是當結束時間...

中位數(DP 二分)

單點時限 10.0 sec 記憶體限制 256 mb 你的地圖是一張白紙,所以即使想決定目的地,也不知道路在 qq 小方最近在自學圖論。他突然想出了乙個有趣的問題 一張由 n 個點,m 條邊構成的有向無環圖。每個點有點權 ai。qq 小方想知道所有起點為 1 終點為 n 的路徑中最大的中位數是多少。...