FZU 2203 单纵大法好 (二分)
来源:互联网 发布:萨德事件 知乎 编辑:程序博客网 时间:2024/06/07 10:36
题目链接:
Fzu 2203
题解:
二分。
问你老S最晚将被哪个炮弹第一次击中?显然符合答案单调性。二分一下位置在check一下就可以了。
代码:
//#include <bits/stdc++.h>#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;typedef long long ll;int w,num,len;const int N=200000+10;int a[N]; int b[N];int check(int n){ for(int i=1;i<=n;i++)b[i]=a[i]; sort(b+1,b+1+n); int cnt = 0; b[0] = 0; b[n+1] = w+1; for(int i=0;i<=n;i++){ cnt+=(b[i+1]-b[i])/(len+1); } if(cnt >= num) return 1; return 0;}int main(){ while(cin>>w>>num>>len)//地图长度,战舰数,战舰长度 { int n; scanf("%d",&n); for(int i=1;i<=n;i++)//炮弹的位置 { scanf("%d",&a[i]); } int l = 1, r = n; int mid; while(l<=r) { mid = (l+r)>>1; if(check(mid)){ l = mid+1; } else r = mid-1; } if(check(n)) puts("-1"); else cout<<l<<endl; } return 0;}
阅读全文
1 0
- FZU 2203 单纵大法好 (二分+贪心)
- FZU 2203 单纵大法好(模拟、二分)
- FZU 2203 单纵大法好 (二分+贪心 && set)
- FZU 2203 单纵大法好 (二分)
- FZU 2203 单纵大法好 (二分+贪心)
- FZU 2203单纵大法好(二分)
- FZU-Problem 2203 单纵大法好(二分+贪心)
- Fzu 2203 单纵大法好【二分+贪心】
- FZU 2203 单纵大法好
- FZU 2203 单纵大法好
- FZU 2203 单纵大法好 (思路)
- FZU2203:单纵大法好(二分)
- FZU Problem F 单纵大法好 (贪心,set容器) *
- foj 2203 单纵大法好
- FZU2203-单纵大法好
- Foj 2203 Problem 2203 单纵大法好 stl应用
- H-FZU2203-单纵大法好
- Codeforces #275 (Div. 2) B - Friends and Presents(二分大法好)
- 通过ESP8266手机或电脑浏览器网页能控制远程任意组任意路继电器开关并收发单片机指令 测试OK
- JS中Unix时间戳转换日期格式
- 如何让一个Java类或者方法过时
- BUG_tomcat启动报错Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
- Android如何判断app是否是每日第一次登录
- FZU 2203 单纵大法好 (二分)
- 登陆注册实现流程
- IntelliJ IDEA 常用快捷键整理
- MySql的存储过程的作用以及详细用法
- HTML5页面调用百度地图API,获取当前位置并导航到目的地
- 【JFinal】WARN:oejuc.AbstractLifeCycle:FAILED jfinal: java.lang.NullPointerException
- ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregate
- Java并发编程:并发容器之CopyOnWriteArrayList(转载)
- struts2,servlet和springmvc的单例多例问题