问题标题: 水?

0
0
已解决
康曦
康曦
中级光能
中级光能

4340

在他们带回的礼物中,有一盒神奇的巧克力。他们打算在和往日的老同学一起观看电影《我和我的祖国》时分而食之。这是一块n * m的矩形巧克力,所以快乐准备将它切成n * m 块。由于这块巧克力是一块魔法巧克力,所以必须按照特殊的方法进行切割。巧克力上共有n-1 条横线和m-1 条竖线,每次快乐可以沿着其中的一条线切开某一块。而且这样切一次的代价只跟所切的线有关,而与所切的长度无关。沿着每条横线切一次的代价依次为y1,y2,……yn-1,竖线为x1,x2,……xm-1。例如,对于图中的巧克力,我们先沿着3条横线切,再沿5条竖线切,最终代价为y1+y2+y3+4*(x1+x2+x3+x4+x5)。
image.png
快乐想知道,他怎样切才能使代价最小。

输入描述 Input Description

共3 行:第一行为两个正整数n 和m;第二行有n-1 个正整数,分别代表y1,y2,……yn-1;第3 行有m-1 个正整数,分别代表x1,x2,……xm-1。

输出描述 Output Description

一行,一个整数,表示最小代价。

样例输入 Sample Input

6 4 2 1 3 1 4 4 1 2

样例输出 Sample Output

42

数据范围及提示 Data Size & Hint

40%的数据,1<=n,m<=100,100%的数据,1<=n,m<=10000;
结果在int 范围以内。


0
已采纳
杜智宸
杜智宸
中级光能
中级光能
  • sort(a+1,a+n,cmp);
  • sort(b+1,b+m,cmp);
  • int i=1,j=1;
  • do
  • {
  • if(a[i]>b[j])
  • {
  • s=s+a[i]*j;
  • i++;
  • }
  • else
  • {
  • s=s+b[j]*i;
  • j++;
  • }
  • }while((i<n) || (j<m));

输入两个数组,定义cmp

0
0
我要回答