acdream 1735 输油管道 贪心
输油管道
Time Limit: 20 Sec Memory Limit: 256 MB
题目连接
http://acdream.info/problem?pid=1735
Description
平面上有n个油井,现在要建立一条主干线,用来把所有的油井产出的原油都输送出去,主干线是平行于x轴的一条直线,每个油井通过一条支线把原油输送到主干线上,现在给定n个油井在平面上的坐标,那么应该把主干线建在什么地方才能让所有的支干线的总长度最小呢?
A的某一段完全重合,或者能够经过上下左右平移与折线A的某一段完全重合,则表示秋实大哥吹出了妹子的一部分旋律。
Input
Output
输出总的支干线长度的最小值,每个结果占一行。
Sample Input
0 0
10 10
Sample Output
10
HINT
题意
题解:
因为这道题主干线是平行于x轴的一条直线,所以和x坐标无关,自动滤掉x。
考虑只有两个点的情况,主干线一定在两条直线的中部,这样距离和都是一样的。
如果再加一个点,中间的那个点一定在直线上。再加一个,直线还是在中间。
代码:
//qscqesze #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <vector> #include <sstream> #include <queue> #include <typeinfo> #include <fstream> #include <map> #include <stack> typedef long long ll; using namespace std; //freopen("D.in","r",stdin); //freopen("D.out","w",stdout); #define sspeed ios_base::sync_with_stdio(0);cin.tie(0) #define maxn 1000005 #define mod 10007 #define eps 1e-9 int Num; char CH[20]; //const int inf=0x7fffffff; //нчоч╢С const int inf=0x3f3f3f3f; /*inline void P(int x) {Num=0;if(!x){putchar('0');puts("");return;}while(x>0)CH[++Num]=x%10,x/=10;while(Num)putchar(CH[Num--]+48);puts(""); } */ inline ll read() {int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f; } inline void P(int x) {Num=0;if(!x){putchar('0');puts("");return;}while(x>0)CH[++Num]=x%10,x/=10;while(Num)putchar(CH[Num--]+48);puts(""); } //**************************************************************************************struct node {int x,y; }; bool cmp(node a,node b) {return a.y<b.y; } node a[maxn]; int main() {int n=read();for(int i=1;i<=n;i++){scanf("%lld%lld",&a[i].x,&a[i].y);}sort(a+1,a+1+n,cmp);ll ans=0;int tmp=(n+1)/2;for(int i=1;i<=n;i++){ans+=abs(a[i].y-a[tmp].y);}cout<<ans<<endl; }
转载于:https://www.cnblogs.com/qscqesze/p/4494932.html
acdream 1735 输油管道 贪心相关推荐
- ACdream 1224 Robbers (贪心)
一道贪心题,很久前做的,代码是我以前写的. 题意:有n个抢劫者抢劫了m块金子,然后第i个人平分xi/y块金子,但是会有除不尽的情况而金子不可再分,那么每个人都有一个不满意度fabs(xi / y - ...
- 【HDU 1735】字数统计(贪心,有缺陷的一道题)
题目分析: 告知有m段,第一行一定带领一段,所以要找出另外m-1段. 由于题目要求最少有多少字被破坏,所以我们要找出的m-1段要求被破损的最少,即是"好"的部分最多. 满足一段开头 ...
- ACdream原创群赛(18)のAK's dream
ACdream原创群赛(18)のAK's dream 题目链接 A:水题,直接模拟题意去搞即可 D:贪心+组合数学,把剑和英雄都从小到大排序,每次计算该英雄能用前几把剑cnt,cnt减去之前有多少人就 ...
- 算法设计与分析第3章 贪心算法
第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...
- 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...
问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...
- Too Many Segments CF595D 贪心乱搞
传送门! 比赛的时候没有时间写了,看看了看大佬的代码,学习学习. 一开始实验室大佬说是用差分写的,但是看了代码发现打cf的人大家都是stl狂魔! 贪心思路:区间按照左端点排序,从1~2e5遍历每一个点 ...
- Roundgod and Milk Tea 贪心
这个题好像可以用一种类似与置换的贪心方法来做~ sum记为剩余奶茶,一开始sum等于奶茶和 ans记录已经喝的奶茶数 不用排序,我们就从前往后直接处理,考虑的是每一个班最多可以喝多少杯奶茶 就是从剩余 ...
- 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码
1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...
- 贪心:expedition 最优加油方法
已知一条公路上,有一个起点与一个终点,这之间有n个加油站;已知从这n个加 油站到终点的距离d与各个加油站可以加油的量l,起点位置至终点的距离L与起 始时刻油箱中汽油量P;假设使用1个单位的汽油即走1个 ...
- 贪心:Burst Balloons 最少次数完成射击气球
已知在一个平面上有一定数量的气球,平面可以看作一个坐标系,在平面的x轴的不同位 置安排弓箭手向y轴方向射箭,弓箭可以向y轴走无穷远;给定气球的宽度 xstart ≤ x ≤ xend,问至少需要多少弓 ...
最新文章
- Catel(翻译)-为什么选择Catel
- BZOJ2831(小强的金字塔系列问题--区域整点数求法)
- Android4.3引入的UiAutomation新框架官方简介
- 快速理解Docker - 容器级虚拟化解决方案
- 读完这篇文章,就基本搞定了Redis数据库
- LeetCode 605. 种花问题
- 在 git hooks 中运行 npm script
- oracle 空值的排序问题 (转载),sqlserver、oracle数据库排序空值null问题解决办法
- 飞狐的日线 java_JAVA 版 ATX-Client
- Windows Azure 社区新闻综述(#78 版)
- JS调用服务器端方法
- 用过http api 发送邮件
- wps linux 在线安装程序,WPS for Linux 字体安装包
- 超简单 图解 三级域名解析
- 个人创建微信公众号步骤
- 英语标点中有没有分号?
- 【SpringBoot高级篇】springboot实现上传docdocx文件格式转pdf在线预览
- 两位诺奖得主给“太上老君托梦”的天价白酒当首席科学家
- PAT 1021 Deepest Root (25分) 从测试点3超时到满分再到代码优化
- CLRS 16.2贪心算法的原理