NOIP模擬 切木板(貪心)

2021-08-28 03:36:19 字數 824 閱讀 5154

有乙個 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 1e9+7。

6 42 1 3 1 4

4 1 2

42貪心,易證明先取權值大的邊優於取權值小的邊。

然後。。。就沒有了。。。。(可能我的寫法太菜了就被卡常了,emmm,inline是個好東西)

#include#include#include#includeusing namespace std;

typedef long long ll;

const ll mod=1e9+7;

const ll maxn=2e6+10;

inline ll read()

struct martix

}a[maxn]; //其實可以開兩個陣列然後雙指標,這樣寫容易像我第一次交的時候只開了1e6的空間。。。60分滾粗

ll n,m;

int main()

else

}printf("%lld",(ans+mod)%mod);

return 0;

}

NOIP模擬 切木板(貪心)

有乙個 m n 的矩形木板。你需要把這個木板切成 1 1 的小方塊,也就是豎著切 n 1 刀 橫著切 m 1 刀。橫著切第 i 個位置的權值為 xi 豎著切第 j 個位置的權值為 yj 切某一刀時的費用為切這一刀的權值乘上切過的塊數。請你安排切的順序使得所有費用之和最小。第一行兩個數 m,n 接下來...

NOIP模擬 切木板

題目 有乙個 m n 的矩形木板。你需要把這個木板切成 1 1 的小方塊,也就是豎著切 n 1 刀 橫著切 m 1 刀。橫著切第 i 個位置的權值為 xi 豎著切第 j 個位置的權值為 yj 切某一刀時的費用為切這一刀的權值乘上切過的塊數。請你安排切的順序使得所有費用之和最小。輸入格式 第一行兩個數...

NOIP模擬 切割木板

小 z 是個特別墮落的小朋友,上數學課的時候經常有奇奇怪怪的想法。小 z 的的包裡有塊 n m 的長方形木板,小 z 想把木板全部切成 1 1 的小正方形 用來玩拼圖 但木板本身並不均勻,因此從不同的線切割下去要花不同的代價。而且對於一塊木板,切割一次以後就被分割成兩塊,而且由於不能把這兩塊木板拼在...