CodeForces 287B Pipeline
来源:互联网 发布:乐其网络 知乎 编辑:程序博客网 时间:2024/06/05 03:50
思路:二分答案,时间复杂度O(nlgn).
若个数为x,那么算出这种情况下提供的水管的最大值和最小值与n比较即可,注意x个分离器需要减去x-1个水管。
#include<cstdio>#include<string>#include<cstring>#include<iostream>#include<algorithm>#define LL long long intusing namespace std;LL n, k;LL calSum(LL ba, LL i){ return ((2*ba + i - 1) * i)/2;}LL bin_search(LL l, LL r){ LL ans = 0x7fffffff; while(l <= r){ LL mid = (l + r) >> 1; LL up = min(n + mid - 1, k); LL tmp1 = calSum(2, mid), tmp2 = calSum(up - mid + 1, mid); if(tmp1 <= n + mid - 1 && tmp2 >= n + mid -1){ ans = min(ans, mid); r = mid - 1; } else if(tmp1 > n + mid - 1) r = mid - 1; else if(tmp2 < n + mid - 1) l = mid + 1; } if(ans != 0x7fffffff) return ans; else return -1;}int main(){ while(cin >> n >> k){ if(n == 1) printf("0\n"); else cout << bin_search(1, k-1) << endl; } return 0;}
0 0
- CodeForces 287B Pipeline
- CodeForces 287B Pipeline(二分)
- CodeForces 287B Pipeline(二分)
- Codeforces Round #176 (Div. 2)B pipeline
- CF 287B(Pipeline-二分)
- [cf]287B Pipeline【二分】
- Codeforces Round #176 (Div. 2) B. Pipeline//二分查找
- [二分]codeforces Pipeline
- Pipeline(codeforces)
- B. Pipeline----二分答案
- CodeForces 287B 二分贪心
- codeforces B
- codeforces B
- codeforces B
- codeforces B
- Pipeline
- PIpeline
- pipeline
- Stream流
- 胡椒奇效:多吃可有效缓解胃寒
- 马云清华毕业典礼演讲:30年来我只坚持三件事
- TI C64x+ DSP CACHE 一致性分析与维护
- 海量数据处理算法—Bloom Filter
- CodeForces 287B Pipeline
- 【Unity Shaders】Shader学习资源和Surface Shader概述
- C++ primer学习笔记 第10章
- db2import用法及删除大量数据高效方法
- Iceberg使用
- HTTP 和 HTTPS
- android—获取网络数据
- 怎样数字转换为字符串?
- 数转化为字符串