二分
文章平均质量分 54
PrimeG
算法学习ing
展开
-
codeforces round#404(div.2) C. Anton and Fairy Tale
题意:一个谷仓共n粒米(最多存放n粒),每天会先送来m粒米,然后会有鸟来吃,第i天会来i只鸟,一只鸟吃一粒米,输出第几天谷仓的米可以被鸟吃完。 首先我们先特判一下,当n) 然后考虑n>m的情况,前m天肯定是吃不完,从第m+1天开始,每天多来一只鸟,也就是第i天(i>m)会一共吃掉 (m+1+2+...+i)粒米,即(1+i)*i/2+m粒米只需找出最小的i使得该值>=n,即满足(i+原创 2017-03-16 18:16:23 · 324 阅读 · 0 评论 -
Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) C. Voltage Keepsake
直接二分即可,右端点的初始值要设大一些,然后直接循环若干次,若大于一个足够大的数就输出-1,否则就输出左端点 #include using namespace std; int n,p,a[100005],b[100005]; double l=0,r=1e15; bool check(double x) { double ret=0; for(int i=0;i<n;i++)r原创 2017-04-17 19:44:38 · 382 阅读 · 0 评论 -
Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) D. Volatile Kite
可单独拿一个点来看,如果要使凸包退化,即使得其与其的相邻两点变成至少三点共线,这种情况的移动最小距离是以其相邻两点为底,该点为顶点的三角形的高的一半,所以二分答案,遍历每个点求三角形的高的一半和该值作对比即可 #include using namespace std; int n,px[1005],py[1005]; double l=0,r=1e9; double distance(doubl原创 2017-04-17 19:50:26 · 402 阅读 · 0 评论