【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2430

【题目大意】

  有一块n*m的矩形巧克力,准备将它切成n*m块。
  巧克力上共有n-1条横线和m-1条竖线,你每次可以沿着其中的一条横线或竖线将巧克力切开,
  无论切割的长短,沿着每条横线切一次的代价依次为y1,y2,…,yn-1,
  而沿竖线切割的代价依次为x1,x2,…,xm-1,求将巧克力切割为小单位快需要最小代价

【题解】

  我们发现题目等价于有两个集合X,Y,里面有一些数字,现在将两个集合进行归并排序,
  每个数字的代价为其数值与(前面不属于同个集合的数字个数+1)的乘积,求最小代价。
  我们发现对于同个集合,显然数值大的排序靠前更优,对于不同集合的数,
  我们考虑当他们相邻时,交换位置相当于总代价改变他们之间的差值,
  显然也是大的数字靠前代价更小一些,所以我们按照从大到小进行归并排序,同时计算答案即可。

【代码】

#include <cstdio>
#include <algorithm>
using namespace std;
const int N=10010;
int n,m,a[N],b[N];
bool cmp(int a,int b){return a>b;}
int main(){
while(~scanf("%d%d",&n,&m)){
for(int i=1;i<n;i++)scanf("%d",&a[i]);
for(int i=1;i<m;i++)scanf("%d",&b[i]);
sort(a+1,a+n+1,cmp);
sort(b+1,b+m+1,cmp);
int posa=1,posb=1,ans=0;
for(int i=1;i<n+m-1;i++){
if(posb>m&&posa<=n||a[posa]>b[posb])ans+=a[posa++]*posb;
else ans+=b[posb++]*posa;
}printf("%d\n",ans);
}return 0;
}

BZOJ 2430 [Poi2003]Chocolate(贪心+归并排序)的更多相关文章

  1. bzoj 2430: [Poi2003]Chocolate 贪心

    发现每一次切割都会使另一方向所有切割次数++. 而每一刀的代价就是 cost*切割次数,故贪心按照cost从大到小排序即可. #include <bits/stdc++.h> #defin ...

  2. 【bzoj2430】[Poi2003]Chocolate 贪心

    题目描述 有一块n*m的矩形巧克力,准备将它切成n*m块.巧克力上共有n-1条横线和m-1条竖线,你每次可以沿着其中的一条横线或竖线将巧克力切开,无论切割的长短,沿着每条横线切一次的代价依次为y1,y ...

  3. bzoj 2016: [Usaco2010]Chocolate Eating【二分+贪心】

    二分答案,贪心判断,洛谷上要开long long #include<iostream> #include<cstdio> using namespace std; const ...

  4. BZOJ 1029 建筑抢修 贪心+堆

    又搞了一晚上OI,编了两道BZOJ和几道NOI题库,临走之前写两篇感想 noip越来越近了,韩大和clove爷已经开始停课虐我们了... 1029: [JSOI2007]建筑抢修 Time Limit ...

  5. [bzoj 2151]种树(贪心)

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2151 分析:原型是bzoj 1150(CTSC 2007) 首先DP无法下手,想到贪心.想到贪 ...

  6. BZOJ.5397.circular(随机化 贪心)

    BZOJ 感觉自己完全没做过环上选线段的问题(除了一个2-SAT),所以来具体写一写qwq. 基本完全抄自remoon的题解qwq... (下标从\(0\sim m-1\)) 拆环为链,对于原线段\( ...

  7. 449A - Jzzhu and Chocolate 贪心

    一道贪心题,尽量横着切或竖着切,实在不行在交叉切 #include<iostream> #include<stdio.h> using namespace std; int m ...

  8. BZOJ 2016: [Usaco2010]Chocolate Eating

    题目 2016: [Usaco2010]Chocolate Eating Time Limit: 10 Sec  Memory Limit: 162 MB Description 贝西从大牛那里收到了 ...

  9. BZOJ 2016: [Usaco2010]Chocolate Eating( 二分答案 )

    因为没注意到long long 就 TLE 了... 二分一下答案就Ok了.. ------------------------------------------------------------ ...

随机推荐

  1. hdu 1217 Arbitrage (spfa算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1217 题目大意:通过货币的转换,来判断是否获利,如果获利则输出Yes,否则输出No. 这里介绍一个ST ...

  2. 使用Sysmon分析宏病毒(Macros Downloader)

    样本为一个Word文件,Virustotal地址: https://www.virustotal.com/#/file/f8aede78ad92bd28f5f699b677d7d5fd362c8be8 ...

  3. python基础===codecs打开文件,解决文件编码格式的问题

    codecs https://docs.python.org/3/library/codecs.html 我们经常用open打开文件的时候会出现各式各样的错误,编码格式的问题,等等~真的很烦 现在尽量 ...

  4. mac10.9下安装Android

    这里记录一下mac下安装android比较快捷的方法 首先,到这里下载Android SDK,这个是集成的,所有工具一应俱全,免去了下载一堆东西的烦恼.具体包括如下: Eclipse + ADT pl ...

  5. C语言的小括号----其实是逗号运算符

    比如下面的代码: #include <stdio.h> void fun() { int a, b, c, d; a = (, b = ); c = (, ); d = (, ); pri ...

  6. 关于微信获取access_token接口,返回值为-1000的问题

    今天打算获取token来,来修改公众号的菜单,结果像往常一样输入了appid 和 secret ,结果没有返回access_token,而是返回了一个-1000,并提示 "未知返回状态&qu ...

  7. 微信小程序-表格形式如何布局?

    微信小程序没有现成的table标签,该怎么布局呢? <view class="my-grids"> <block wx:for="{{grids}}&q ...

  8. git: Your branch and 'origin/master' have diverged

    git: Your branch and 'origin/master' have diverged - how to throw away local commits? - Stack Overfl ...

  9. 64位直接加载个img 标签的src

  10. flex布局各种情况总结分析及实例演示

    2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. 通过笔者大量实践,发现 ...