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.地点:东北师范 ...
随机推荐
- Inno Setup 检测已安装的.NET Framework 版本
翻译自:http://kynosarges.org/DotNetVersion.html 由 Jordan Russell 写的 Inno Setup 是一个伟大的安装脚本程序,但缺乏一个内置的函数来 ...
- Python属性的查找顺序
属性查找顺序 关于属性描述符请看上文>属性描述符 在梳理属性查找相关知识时,查看了很多的书籍和他人的博客,发现很多讲的过于抽象,并没有一个清晰的流程呈现.特此写下我对于此方面的理解和总结. ...
- argv和raw_input的区别
argv是在一开始就要输入不输入程序会出现错误,raw_input是在运行之后进行输入.
- xorm-Iterate/Count/Rows方法实例
package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/ ...
- JSVC安装
执行./start-all.sh启动hadoop时报错 Starting datanodes node1: ERROR: Cannot set priority of datanode process ...
- golang --iota 用法
package main import "fmt" func main() { const ( a = iota //0 b //1 c //2 d = "ha" ...
- 【转】Redis 基础操作和命令
笔记 Redis提供了六种基本的数据结构:String,Hash,List,Set,Sorted Set,HyperLogLog. Redis的特点:纯内存操作,单线程工作模型,非阻塞I/O多路复用. ...
- 一张图看懂SharpImage
通过下面的图片,可以瞬间看懂整个类库的脉络.图片比较大,如果看不清,可
- 从 SimpleIntegerProperty 看 Java属性绑定(property binding) 与 观察者模式(Observable)
//TODO:ExpressionHelper .bindBidirectional双向绑定.以及IntegerExpression的一系列算术方法和返回的IntegerBinding暂未详细解析(比 ...
- 谈一谈做iOS播放器库开发所涉及的知识点
在自己研究生毕业的时候,想着能找上一份做视频编解码的工作,可惜没有如愿,最后到了一家iOS游戏渠道公司去做游戏支付业务的SDK开发,我的iOS正式开发生涯就这么开始了. 在那家iOS游戏渠道没做上一年 ...