NOIP模擬 切木板

2022-08-12 22:42:32 字數 962 閱讀 6006

題目

有乙個 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 接下來...