2019/10/22 test T1 题解
题目描述
给定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
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<cmath>
- #define int long long
- #define maxn 300000+10
- #define INF 2147483647
- using namespace std;
- inline int read()
- {
- int x=;
- bool f=;
- char c=getchar();
- for(; !isdigit(c); c=getchar()) if(c=='-') f=;
- for(; isdigit(c); c=getchar()) x=(x<<)+(x<<)+c-'';
- if(f) return x;
- return -x;
- }
- inline void write(int x)
- {
- if(x<){putchar('-');x=-x;}
- if(x>)write(x/);
- putchar(x%+'');
- }
- int n;
- struct node
- {
- double a,b,val;
- }x[maxn];
- double minn=INF;
- inline bool cmp(node x,node y)
- {
- return x.val<y.val;
- }
- inline double cal(double num)
- {
- double ans=;
- for(int i=;i<=n;i++)
- {
- ans+=abs(x[i].a*num+x[i].b);
- }
- return ans;
- }
- signed main()
- {
- n=read();
- for(int i=;i<=n;i++)
- {
- scanf("%lf%lf",&x[i].a,&x[i].b);
- if(x[i].a==) continue;
- int re=x[i].b*-;
- x[i].val=double(re)/double(x[i].a);
- }
- if(n==)
- {
- write();
- return ;
- }
- sort(x+,x+n+,cmp);
- double l=x[].val,r=x[n].val;
- while(r-l>=1e-)
- {
- double m1=l+(r-l)/,m2=r-(r-l)/;
- if(cal(m1)<cal(m2)) r=m2;
- else l=m1;
- }
- printf("%.8f",cal(l));
- return ;
- }
2019/10/22 test T1 题解的更多相关文章
- 2019.10.22 csp-s模拟测试82 反思总结
重来重来,刚刚就当什么都没发生 今天的题属实有些迷惑,各种意义上…总之都很有难度吧.不满归不满,这套题的确不是什么没有意义的题目. 为了考验自己的学习能力记忆力,决定不写题解,扔个代码完事了 其实是懒 ...
- Atcoder Code Festival 2017 qual C 10.22 D题题解
[题意概述] 给出一个只有小写字母的序列,问最少把序列分成几段可以满足每一段可以通过变换成为回文串.变换指的是交换子序列中的字母的位置. [题解] 我们把a~z分别设为2^0~2^25,每个子序列满足 ...
- 2019.10.22 校内CSP%你赛
我太难了 先说好没有代码T1 题目大意: 给定一些形如|ax+b|的式子,求最小的x使得它们的和最小. 算法一: 大家知道零点分段法 对于这n个式子我们有n+1个取值范围 使得展开这n个式子得到的新式 ...
- 2019.10.22 用TCP实现服务端并发接收
client import socket client = socket.socket() client.connect( ('127.0.0.1',8888) ) while 1: msg = in ...
- TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器
TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器 任务清单 给自己取一个酷酷的id,并选择1-2个喜欢的方向.(只是初步选择,后期可更改) 改下群名片.例如yo ...
- Good Bye 2019(前五题题解)
这套也是后来补得. 我太菜了,第三题就卡着了.想了好久才做出来,要是参加了绝对掉分. D题是人生中做完的第一道交互题,不容易. 比赛传送门 A.Card Game 题目大意:一共有n张互不相同的牌,玩 ...
- 背水一战 Windows 10 (22) - 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合
[源码下载] 背水一战 Windows 10 (22) - 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合 作 ...
- Daily Scrum 10.22
(写于10.22周四0晨) 昨天任务还未完成的继续完成任务. 每个人都查看自己的TFS,修改已经完成的任务状态,改为已关闭-已完成. 由于android studio运行过于慢,我们统一采取eclip ...
- 第10次Scrum会议(10/22)【欢迎来怼】
一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华小组照片 二.开会信息 时间:2017/10/22 17:20~17:33,总计13min.地点:东北师范 ...
随机推荐
- 函数的练习2——python编程从入门到实践
8-9 魔术师:创建一个包含魔术师名字的列表,并将其传递一个名为show_magicians()的函数,这个函数打印列表中每个魔术师的名字. def show_magicians(magicians) ...
- leetcode tree相关题目总结
leetcode tree相关题目小结 所使用的方法不外乎递归,DFS,BFS. 1. 题100 Same Tree Given two binary trees, write a function ...
- python3+requests:post请求四种传送正文方式
https://www.cnblogs.com/insane-Mr-Li/p/9145152.html 前言:post请求我在python接口自动化2-发送post请求详解(二)已经讲过一部分了,主要 ...
- HDU6037 Expectation Division 期望、高维前缀和
传送门 设\(f_x\)表示答案,那么\(f_x = \frac{\sum\limits_{d \mid x} f_d}{\sigma_0(x)} + 1 = \frac{\sigma_0(x) + ...
- 作业调度框架Quartz.NET | 大专栏
原文:作业调度框架Quartz.NET | 大专栏 作业调度框架Quartz.NET 发表于 2019-09-28 | 分类于 前端 | 没有评论 前言 任务调度系统并不是完美的,它会出现任务执行 ...
- 1.1 文档PUT内部原理
文档更新原理: PUT 一条数据的时候,如果是全量替换,ES并不会覆盖原来的文档,而是新创建一个文档,并将version+1,原文档标记为deleted,不会立刻物理删除.ES会在集群的d ...
- java报错与解决方法总结
错误 error:Syntax error, insert ")" to complete MethodDeclaration 解决办法:放到main方法里 错误原因: 错误: e ...
- kubernetes第四章--架构
- django后台标题替换
在制作django后台的时候,默认的django admin界面标题为“django管理”,找了许多的资料都很麻烦,偶与好友一起探讨,找到了新的解决方法 在django的py文件中插入 from dj ...
- MySQL Backup--xtrabackup与Bulk Load for Create Index
场景描述:主从使用MySQL 5.7.19 1.从库上使用xtrabackup进行热备. 2.主库行执行DDL创建索引: ALTER TABLE `tb_xxx` ADD INDEX idx_good ...