给出三角形三个顶点,求出三个互切的圆的半径 尽管大白鼠说能够推出公式,但是这个公式仅仅怕没那么easy推--我左看右看上看下看也推不出. 应该是要做辅助线什么的,那也-- 因为非常easy就推出了关于三个半径的三元方程组,那么就试试搜索吧,搜当中随意一个半径,仅仅要满足这个方程组就能够了, 那么就二分搜索吧,当然,这个单调性呢? 看图可知,例如说,我们搜最靠近最上面的顶点的圆的半径r1,由于,以下两圆的r2,r3都是由r1推出,由于方程组的约束作用,那么以下两个圆肯定跟最上面的圆相切,当然也肯定…
题 给定三角形,求三个两两相切且与三角形的一条边相切的圆的半径. 二分一个半径,可以得出另外两个半径,需要推一推公式(太久了,我忘记了) #include<cstdio> #include<cmath> #define eps (1e-8) #define sqr(a) (a)*(a) #define min(a,b) (a)>(b)?(b):(a) #define dd double struct point{ dd x,y,v,a;//点x,y,v为角度,a为边长 }q[…
题目链接: http://codeforces.com/gym/101194/attachments https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5922 题意: 给出 $N$ 个冰淇淋球,第 $i$ 个冰淇淋球大小为 $B_i$,现在已知冰淇淋球堆叠起来可组成一个冰淇淋. 对于上下相邻的两个冰淇淋球,只有上面的那个大小不…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1278 因为圆心都在x轴上,把每个圆转化成线段后,按线段的起点排序,那么对于每个圆都要从后面找出起点大于当前圆转化成的线段终点的一个点,这个点之后的圆都会与当前圆相离. 因为按起点排序所以可以二分求解. 发现自己二分写的乱七八糟的. #include <iostream> #include <cstdio> #include <cmath> #i…
题意:给你一些区间,再查询一些点,问这些点与所有区间形成的最小距离的最大值.最小距离定义为:如果点在区间内,那么最小距离为0,否则为min(pos-L[i],R[i]-pos). 解法:当然要排个序,仔细想想会发现我们要找的区间的位置满足二分性质,即如果此时pos-L[mid] >= R[mid]-pos,那么我们要找的区间肯定是mid或大于mid,否则,我们要找的区间一定是mid即mid以下.二分找到即可.预处理时要把嵌套在别的区间里的区间忽略掉,因为外面那个区间一定比他更优. 代码: #in…
题意:为每个小伙伴切糕,要求每个小盆友(包括你自己)分得的pie一样大,但是每个人只能分得一份pie,不能拿两份凑一起的. 做法:二分查找切糕的大小,然后看看分出来的个数有没有大于小盆友们的个数,它又没说每个pie都要分完,分不完的留给工作人员吃嘛. 代码: /* * Author: illuz <iilluzen[at]gmail.com> * Blog: http://blog.csdn.net/hcbbt * File: live3652.cpp * Create Date: 2013-…
ZSoft Corp. is a software company in GaoKe Hall. And the workers in the hall are very hard-working. But the elevator in that hall always drives them crazy. Why? Because there is only one elevator in GaoKe Hall, while there are hundreds of companies i…
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3914 对L研究可以发现 相当于黑-横白,黑-纵白,每个黑白都要被匹配到,其中黑的横纵各两次, 很自然的想到拆点,黑点拆成专门和横白连接的,专门和纵白连接的, 如果2*黑==白数,运行一次二分匹配算法,匹配数==白数则为可行,剩下的都不可行 #include <cstdi…
题目链接 题意:有n架飞机,每架飞机有两个着陆时间点可以选,要求任意两架飞机的着陆时间之差不超过k,求k的最大值. 解法:由于每架飞机都有两个选择,并且必选且只能选其中一个,时间冲突也是发生在两架飞机之间的,因此二分答案,对冲突的时间建边处理,然后跑2SAT即可. #include<cstdio> #include<cstring> #include<algorithm> using namespace std; +; struct E { int v,nxt; } e…
题目链接 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5449 题意 给出一个n 然后有n行 每行给出两个数 这两个数之间可以用三种操作 分别是 + - * 如果这n对数通过操作后 得到的结果都是不同的,那么这个方案就是符合条件的 输出任意一种可行方案 如果存在相同结果,那么就是不可行的 思路 可以把N对数看成一个点,把一…