题目描述

给定n个a[i],b[i],求min(x$\in$R){$\sum\limits_{i=1}^{n}$|a[i]*x+b[i]|}

输入格式

第 1行 1个整数 n
第 2行 n个整数,第 i个为 a[i],b[i]

输入格式

输出一行一个实数 y,表示答案。你可以输出任意位小数,随后系统会将你的输出与答案进行比较,只
有当你的输出与答案绝对误差不超过 $10^{-3}$ 时才能得到该测试点的分数

输入样例

2
1 1
2 -1

输出样例

1.50000000000

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<cmath>
  6. #define int long long
  7. #define maxn 300000+10
  8. #define INF 2147483647
  9. using namespace std;
  10. inline int read()
  11. {
  12. int x=;
  13. bool f=;
  14. char c=getchar();
  15. for(; !isdigit(c); c=getchar()) if(c=='-') f=;
  16. for(; isdigit(c); c=getchar()) x=(x<<)+(x<<)+c-'';
  17. if(f) return x;
  18. return -x;
  19. }
  20. inline void write(int x)
  21. {
  22. if(x<){putchar('-');x=-x;}
  23. if(x>)write(x/);
  24. putchar(x%+'');
  25. }
  26. int n;
  27. struct node
  28. {
  29. double a,b,val;
  30. }x[maxn];
  31. double minn=INF;
  32. inline bool cmp(node x,node y)
  33. {
  34. return x.val<y.val;
  35. }
  36. inline double cal(double num)
  37. {
  38. double ans=;
  39. for(int i=;i<=n;i++)
  40. {
  41. ans+=abs(x[i].a*num+x[i].b);
  42. }
  43. return ans;
  44. }
  45. signed main()
  46. {
  47. n=read();
  48. for(int i=;i<=n;i++)
  49. {
  50. scanf("%lf%lf",&x[i].a,&x[i].b);
  51. if(x[i].a==) continue;
  52. int re=x[i].b*-;
  53. x[i].val=double(re)/double(x[i].a);
  54. }
  55. if(n==)
  56. {
  57. write();
  58. return ;
  59. }
  60. sort(x+,x+n+,cmp);
  61. double l=x[].val,r=x[n].val;
  62. while(r-l>=1e-)
  63. {
  64. double m1=l+(r-l)/,m2=r-(r-l)/;
  65. if(cal(m1)<cal(m2)) r=m2;
  66. else l=m1;
  67. }
  68. printf("%.8f",cal(l));
  69. return ;
  70. }

2019/10/22 test T1 题解的更多相关文章

  1. 2019.10.22 csp-s模拟测试82 反思总结

    重来重来,刚刚就当什么都没发生 今天的题属实有些迷惑,各种意义上…总之都很有难度吧.不满归不满,这套题的确不是什么没有意义的题目. 为了考验自己的学习能力记忆力,决定不写题解,扔个代码完事了 其实是懒 ...

  2. Atcoder Code Festival 2017 qual C 10.22 D题题解

    [题意概述] 给出一个只有小写字母的序列,问最少把序列分成几段可以满足每一段可以通过变换成为回文串.变换指的是交换子序列中的字母的位置. [题解] 我们把a~z分别设为2^0~2^25,每个子序列满足 ...

  3. 2019.10.22 校内CSP%你赛

    我太难了 先说好没有代码T1 题目大意: 给定一些形如|ax+b|的式子,求最小的x使得它们的和最小. 算法一: 大家知道零点分段法 对于这n个式子我们有n+1个取值范围 使得展开这n个式子得到的新式 ...

  4. 2019.10.22 用TCP实现服务端并发接收

    client import socket client = socket.socket() client.connect( ('127.0.0.1',8888) ) while 1: msg = in ...

  5. TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器

    TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器 任务清单 给自己取一个酷酷的id,并选择1-2个喜欢的方向.(只是初步选择,后期可更改) 改下群名片.例如yo ...

  6. Good Bye 2019(前五题题解)

    这套也是后来补得. 我太菜了,第三题就卡着了.想了好久才做出来,要是参加了绝对掉分. D题是人生中做完的第一道交互题,不容易. 比赛传送门 A.Card Game 题目大意:一共有n张互不相同的牌,玩 ...

  7. 背水一战 Windows 10 (22) - 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合

    [源码下载] 背水一战 Windows 10 (22) - 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合 作 ...

  8. Daily Scrum 10.22

    (写于10.22周四0晨) 昨天任务还未完成的继续完成任务. 每个人都查看自己的TFS,修改已经完成的任务状态,改为已关闭-已完成. 由于android studio运行过于慢,我们统一采取eclip ...

  9. 第10次Scrum会议(10/22)【欢迎来怼】

    一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华小组照片 二.开会信息 时间:2017/10/22 17:20~17:33,总计13min.地点:东北师范 ...

随机推荐

  1. 函数的练习2——python编程从入门到实践

    8-9 魔术师:创建一个包含魔术师名字的列表,并将其传递一个名为show_magicians()的函数,这个函数打印列表中每个魔术师的名字. def show_magicians(magicians) ...

  2. leetcode tree相关题目总结

    leetcode tree相关题目小结 所使用的方法不外乎递归,DFS,BFS. 1. 题100 Same Tree Given two binary trees, write a function ...

  3. python3+requests:post请求四种传送正文方式

    https://www.cnblogs.com/insane-Mr-Li/p/9145152.html 前言:post请求我在python接口自动化2-发送post请求详解(二)已经讲过一部分了,主要 ...

  4. HDU6037 Expectation Division 期望、高维前缀和

    传送门 设\(f_x\)表示答案,那么\(f_x = \frac{\sum\limits_{d \mid x} f_d}{\sigma_0(x)} + 1 = \frac{\sigma_0(x) + ...

  5. 作业调度框架Quartz.NET | 大专栏

    原文:作业调度框架Quartz.NET | 大专栏 作业调度框架Quartz.NET 发表于 2019-09-28 |  分类于 前端 |  没有评论 前言 任务调度系统并不是完美的,它会出现任务执行 ...

  6. 1.1 文档PUT内部原理

    文档更新原理:       PUT 一条数据的时候,如果是全量替换,ES并不会覆盖原来的文档,而是新创建一个文档,并将version+1,原文档标记为deleted,不会立刻物理删除.ES会在集群的d ...

  7. java报错与解决方法总结

    错误 error:Syntax error, insert ")" to complete MethodDeclaration 解决办法:放到main方法里 错误原因: 错误: e ...

  8. kubernetes第四章--架构

  9. django后台标题替换

    在制作django后台的时候,默认的django admin界面标题为“django管理”,找了许多的资料都很麻烦,偶与好友一起探讨,找到了新的解决方法 在django的py文件中插入 from dj ...

  10. MySQL Backup--xtrabackup与Bulk Load for Create Index

    场景描述:主从使用MySQL 5.7.19 1.从库上使用xtrabackup进行热备. 2.主库行执行DDL创建索引: ALTER TABLE `tb_xxx` ADD INDEX idx_good ...