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

题意:

  给你一个数列a,和一个可变换顺序的序列b(数列长度≤25000)。

  a增加一个单位代价为x,降低一个单位代价为y。

  求a变为b的最小代价。

题解:

  贪心。

  将a,b分别从小到大排序,然后统计答案。

  证明:

    因为a,b均为升序,所以对于交换a[i]和a[j],有四种情况:

    红色为a的走势,蓝色为b,绿色为花费。实线为交换之前,虚线为交换之后。

    (1)a,b不相交。交换前和交换后绿色线段总长不变,即花费不变。(其他情况同理)

    (2)a,b相交。交换后绿色线段总长变长,即花费变多。(其他情况同理)

    (图1)        (图2)

    综上:如果a,b按照升序排列,总花费只可能更少。

AC Code:

 #include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define MAX_N 25005 using namespace std; int n,x,y;
int ans=;
int a[MAX_N];
int b[MAX_N]; void read()
{
cin>>n>>x>>y;
for(int i=;i<n;i++)
{
cin>>a[i]>>b[i];
}
} void solve()
{
sort(a,a+n);
sort(b,b+n);
for(int i=;i<n;i++)
{
if(a[i]<b[i]) ans+=(b[i]-a[i])*x;
else ans+=(a[i]-b[i])*y;
}
} void print()
{
cout<<ans<<endl;
} int main()
{
read();
solve();
print();
}

BZOJ 3399 [Usaco2009 Mar]Sand Castle城堡:贪心【最小匹配代价】的更多相关文章

  1. bzoj 3399: [Usaco2009 Mar]Sand Castle城堡

    3399: [Usaco2009 Mar]Sand Castle城堡 Time Limit: 3 Sec  Memory Limit: 128 MB Description 约翰用沙子建了一座城堡.正 ...

  2. BZOJ 3399 [Usaco2009 Mar]Sand Castle城堡(贪心)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3399 [题目大意] 将一个集合调整成另一个集合中的数,把一个数+1需要消耗x,-1需要 ...

  3. 3399: [Usaco2009 Mar]Sand Castle城堡

    3399: [Usaco2009 Mar]Sand Castle城堡 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 37  Solved: 32[Sub ...

  4. 【BZOJ】3399: [Usaco2009 Mar]Sand Castle城堡(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3399 贪心就是将两组排序,然后直接模拟即可.. 如果我们用a去匹配一个绝对值和它差不多的值,那么去匹 ...

  5. BZOJ3399: [Usaco2009 Mar]Sand Castle城堡

    3399: [Usaco2009 Mar]Sand Castle城堡 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 22  Solved: 17[Sub ...

  6. DP经典 BZOJ 1584: [Usaco2009 Mar]Cleaning Up 打扫卫生

    BZOJ 1584: [Usaco2009 Mar]Cleaning Up 打扫卫生 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 419  Solve ...

  7. BZOJ 3401: [Usaco2009 Mar]Look Up 仰望( 单调栈 )

    n <= 105 , 其实是10 ^ 5 ....坑...我一开始写了个模拟结果就 RE 了.. 发现这个后写了个单调栈就 A 了... ---------------------------- ...

  8. BZOJ 3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 动态规划

    3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=34 ...

  9. bzoj 1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害

    1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害 Description Farmer John的农场里有P个牧场,有C条无向道路连接着他们,第i条道路连接着 ...

随机推荐

  1. [转]glyphicons-halflings-regular字体 图标

    本文转自:http://www.ijquery.cn/?p=377 一.介绍 采用这种字体,我们可以避免网站制作中采用好多图片,一方面解决了浏览器的兼容性问题.另一方面,这些字体都是矢量字体,我们只要 ...

  2. Echarts 修改折线的颜色和折线的点的大小方法

    series: [{ type: 'line', smooth:true,//折点是圆弧状的                            showSymbol: true,          ...

  3. MySQL函数库

    MySQL函数库,这个函数库是一个外部函数库!这个函数提供了对于MySQL数据库进行操作的常用函数,如连接MySQL服务器.打开数据库.执行SQL语句等.所以这个函数库的功能对于我们来说是非常重要的! ...

  4. EveryThing 使用方法

    1.按照时间范围:datetimed: <*.doc|*.docx>  dm:1/2015-6/2015// 如果本地的时间设置是年份在前,那么把年份放在月份前面// d: <*.d ...

  5. ajax传json

    需求 前台有许多字段需要用ajax传送给后台, 如果给直接将字段封装成JSON对象传给后台会很方便 解决 ajax 发送 var str = {"name":"xiaom ...

  6. MyBatis_动态代理

    一.项目结构 二.代码实现 import java.util.List; import java.util.Map; import com.jmu.bean.Student; public inter ...

  7. JavaEE之HttpServletResponse

    HttpServletResponse概述 我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应r ...

  8. easy html+css tree 简单的HTML+css导航树

    code: show:

  9. eayui grid 每一页的行号都是从1开始

    问题背景: easyui 需要显示行号的时候,我们只需要设置  rownumbers: true, 但是 不管是在哪一页,行号都是从1开始,不能连续 我们在分页的 onSelectPage 函数里去执 ...

  10. 字符数字转换 atoi 与 strtol

    原文:http://www.cnblogs.com/JefferyZhou/archive/2010/07/01/1769555.html 在很多时候我们都很清楚 atoX 系列函数: atoi , ...