博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[BZOJ3399] [Usaco2009 Mar]Sand Castle城堡(排序)
阅读量:5901 次
发布时间:2019-06-19

本文共 1314 字,大约阅读时间需要 4 分钟。

3399: [Usaco2009 Mar]Sand Castle城堡

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 79  Solved: 66
[ ][ ][ ]

Description

约翰用沙子建了一座城堡.正如所有城堡的城墙,这城墙也有许多枪眼,两个相邻枪眼中间那部分叫作“城齿”.    城墙上一共有N(1≤N≤25000)个城齿,每一个都有一个高度Mi.(1≤尬≤100000).现在约翰想把城齿的高度调成某种顺序下的Bi,B2,…,BN(I≤Bi≤100000). -个城齿每提高一个单位的高度,约翰需要X(I≤X≤100)元;每降低一个单位的高度,约翰需要Y(1≤y≤100)元.    问约翰最少可用多少钱达到目的.数据保证答案不超过2^32.

Input

    第1行输入3个整数N,X,Y.
    第2到N+1行每行输入两个整数Mi和Bi.

Output

 
    最少花费.

Sample Input

3 6 5
3 1
1 2
1 2

Sample Output

11

HINT

    第1个城齿降低1,第2个城齿提高1

Source

 

有一个非常直观的结论,越小的肯定对应越小的,越大的肯定对应越大的。然后排序乱搞。

/**************************************************************    Problem: 3399    User: ecnu161616    Language: C++    Result: Accepted    Time:24 ms    Memory:2856 kb****************************************************************/ #include 
using namespace std; int n, x, y;int a[200000], b[200000];long long ans; int main(){ #ifdef ULTMASTER freopen("a.in","r",stdin); #endif scanf("%d %d %d", &n, &x, &y); for (int i = 0; i < n; ++i) scanf("%d %d", &a[i], &b[i]); sort(a, a + n); sort(b, b + n); for (int i = 0; i < n; ++i) { if (a[i] < b[i]) ans += 1LL * (b[i] - a[i]) * x; else ans += 1LL * (a[i] - b[i]) * y; } printf("%lld\n", ans); return 0;}

  

转载于:https://www.cnblogs.com/ultmaster/p/6073023.html

你可能感兴趣的文章
hihoCoder第一周(最长回文子串)
查看>>
Windows内存管理
查看>>
Android模拟器安装程序及上传音乐并播放
查看>>
asus xtion2使用
查看>>
【BZOJ 2038】[2009国家集训队]小Z的袜子(hose)
查看>>
Mybatis-动态 SQL语句
查看>>
cookie使用
查看>>
解决java.lang.IllegalArgumentException: Can't load standard profile: LINEAR_RGB.pf
查看>>
Mac中文乱码问题
查看>>
django之cookie
查看>>
SDUT-3332&3333_数据结构实验之栈与队列五:下一较大值
查看>>
汕头市队赛SRM15
查看>>
mysql-mode
查看>>
权值线段树
查看>>
Python 开发 项目《外星人入侵》
查看>>
IIS7.5上的REST服务的Put操作发生HTTP Error 405.0 - Method Not Allowed 解决方法
查看>>
MySQL操作数据库指令
查看>>
Web前端开发工程师常用技术网站整理
查看>>
SpringEl表达式(转)
查看>>
java dom4j xml生成,解析
查看>>