Codeforces Round #176 (Div. 2) B. Pipeline//二分查找
来源:互联网 发布:怎么从淘宝上买三唑仑 编辑:程序博客网 时间:2024/06/06 17:32
题目大意:刚开始没有读懂题意,很是纠结。管子可以一个套一个,就是这样。给出的k可以算出一共有多少根管子。因为数字有点大,所以用二分查找快一点。下面是代码:
#include<iostream>using namespace std;typedef long long LL;int main(){ LL n; LL k; cin>>n>>k; if(n==1) { cout<<"0"<<endl; return 0; } if(n == k) { cout<<"1"<<endl; return 0; } if(n > (2 * (k-2+1)+(k - 2 + 1) * (k - 2)/2-k+2)) { cout<<"-1"<<endl; return 0; } LL max=k-2+1; LL min=1; LL Max; LL Min; LL mid; while(min<=max) { mid=(min+max)/2; Min=2*mid+mid*(mid-1)/2-mid+1; Max=k*mid-mid*(mid-1)/2-mid+1; //cout<<"Min: "<<Min<<endl; //cout<<"Max: "<<Max<<endl; //cout<<"max: "<<max<<endl; //cout<<"mid: "<<mid<<endl; //cout<<"min: "<<min<<endl; if(n<Min) max=mid-1;//mid is big else if(n>Max) min=mid+1;// mid is small else { Min=2*(mid-1)+(mid-1)*(mid-2)/2-(mid-1)+1; Max=k*(mid-1)-(mid-1)*(mid-2)/2-(mid-1)+1; if(n>Max) { cout<<mid<<endl; return 0; } max=mid-1; } } cout<<mid<<endl; return 0;}
PS:这道题wa了几次,第一次是在判断n根管子可以有多少output的时候忘记除以2了;第二次是忽略了特殊情况,那就是n为一的情况。
这道题没有在规定的时间内提交还是有点遗憾的。做CF的时候很紧张,写代码的时候很急躁。(囧,这是第二次做CF,第一次用自己的号做)。
虽然我走的慢,但是我定不会后退。
- Codeforces Round #176 (Div. 2) B. Pipeline//二分查找
- Codeforces Round #176 (Div. 2)B pipeline
- 【Codeforces Round 367 (Div 2) B】【二分查找】Interesting drink
- Codeforces Round #321 (Div. 2) B 二分
- Codeforces Round #271 (Div. 2) B Worms 裸的二分查找
- Codeforces Round #367 (Div. 2) A(暴力) B(二分查找) C(DP) D(01字典树)
- Codeforces Round #271 (Div. 2) --B Worms (二分)
- Codeforces Round #276 (Div. 2) B. Valuable Resources 二分
- Codeforces Round #311 (Div. 2) B. Pasha and Tea【二分】
- Codeforces Round #367 (Div. 2) B Interesting drink【二分】
- Codeforces Round #367 (Div. 2) B Interesting drink(二分)
- Codeforces Round #367 (Div. 2) B. Interesting drink (二分)
- Codeforces Round #367 (Div. 2) B. Interesting drink (二分)
- Codeforces Round #377 (Div. 2)A,B,C,D【二分】
- Codeforces Round #367 (Div. 2) B. Interesting drink(二分)
- Codeforces Round #403 Div. 2 A B 二分
- Codeforces Round #277.5(Div. 2) B. BerSU Ball【二分匹配】
- Codeforces Round #403 (Div. 2) B 二分 or 三分
- 自己动手写操作体统 pmtest1.asm 详细解释
- HHI
- PHP执行程序进度条demo .
- IT人需要好心态
- hibernate注解(一)
- Codeforces Round #176 (Div. 2) B. Pipeline//二分查找
- 第三次程序报告(课堂练习)
- Android——关于ListView控件的使用方法
- 黑马程序员_java 网络编程-1
- struts.xml配置文件(package,namespace,action)
- 黑马程序员_java的反射机制
- 一口一口吃掉Struts(十)——异常自动处理机制
- Spring事物传播特性详解
- 黑马程序员——java编程那些事儿____java基础(二) java基本语法