時間限制:
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;
輸出輸出最短時間,佔一行。
樣例輸入
13 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 的路徑中最大的中位數是多少。...