題目
有乙個 m×n 的矩形木板。你需要把這個木板切成 1×1 的小方塊,也就是豎著切 n-1 刀、橫著切 m-1 刀。橫著切第 i 個位置的權值為 xi ,豎著切第 j 個位置的權值為 yj 。切某一刀時的費用為切這一刀的權值乘上切過的塊數。也是乙個很簡單的貪心,可以證明先切權值大的刀更優。。。。然後?就沒有然後了請你安排切的順序使得所有費用之和最小。
輸入格式
第一行兩個數 m,n 。
接下來一行 m-1 個整數 x1,x2,…,xm-1 。
接下來一行 n-1 個整數 y1,y2,…,yn-1 。
輸出格式
輸出乙個數,表示最小的費用之和 mod 109 + 7 。
樣例資料 1
輸入 6 4
2 1 3 1 4
4 1 2
輸出 42
備註 【資料規模與約定】
對於 30% 的資料, m + n≤10 。
對於 60% 的資料, m,n≤500 。
對於 100% 的資料, 2≤m,n≤10^6 ;0≤xi,yj≤10^9 。
【提醒】
建議本題加讀入優化。
#include
using
namespace
std;
#define ll long long
ll mod=1e9+7;
inline ll read()
int n,m,numa,numb;
ll tota,totb,a[1000006],b[1000006],ans;
inline
bool comp(int a,int b)
int main()
else
}cout
<}
NOIP模擬 切木板(貪心)
有乙個 m n 的矩形木板。你需要把這個木板切成 1 1 的小方塊,也就是豎著切 n 1 刀 橫著切 m 1 刀。橫著切第 i 個位置的權值為 xi 豎著切第 j 個位置的權值為 yj 切某一刀時的費用為切這一刀的權值乘上切過的塊數。請你安排切的順序使得所有費用之和最小。第一行兩個數 m,n 接下來...
NOIP模擬 切割木板
小 z 是個特別墮落的小朋友,上數學課的時候經常有奇奇怪怪的想法。小 z 的的包裡有塊 n m 的長方形木板,小 z 想把木板全部切成 1 1 的小正方形 用來玩拼圖 但木板本身並不均勻,因此從不同的線切割下去要花不同的代價。而且對於一塊木板,切割一次以後就被分割成兩塊,而且由於不能把這兩塊木板拼在...
NOIP模擬 切木板(貪心)
有乙個 m n 的矩形木板。你需要把這個木板切成 1 1 的小方塊,也就是豎著切 n 1 刀 橫著切 m 1 刀。橫著切第 i 個位置的權值為 xi 豎著切第 j 個位置的權值為 yj 切某一刀時的費用為切這一刀的權值乘上切過的塊數。請你安排切的順序使得所有費用之和最小。第一行兩個數 m,n 接下來...