题意 : 老S最近喜欢上某个搜集战舰的游戏,这个游戏中很重要的一个内容是能编排自己的战舰,通过出击完成任务来获取资源或新的战舰。大家都说老S是一个“直男”,所以他喜欢把战舰排成一条直线。目前老S正准备完成某个新的任务--“困难级丹麦海峡”,可以将地图视为1*N的一列方格(下标为1,2,...,N),老S有K列战舰,每列战舰长度为A。老S可以将自己的战舰布局在地图中的任意位置,但是两列战舰之间至少要有一个空格子,并且显然战舰是不能重叠放置的。老S通过内部人员率先知道了敌军的炮弹将会打向那些位置,老S希望使自己的舰队尽量晚的被第一次击中。请输出老S的舰队最晚将被敌方炮弹第一次击中?如果老S的舰队可以不被敌方炮弹击中则输出-1。

分析 : 可以考虑在1~N这个区间内一个个炸弹地增加去尝试是否能够避免被击中, 直到出现无法避免被击中的情况, 那此时答案就是这个炸弹了, 若直到N也就是炸弹全投放都能避免被击中, 那就输出-1。但是这样的话时间是线性的, 如果单看炸弹的轰炸顺序, 从第一个炸弹开始, 随着炸弹数的增加, 区间内被轰击的点越多, 也就是轰炸到的船的可能性越大, 这是单调的, 所以可以考虑二分来挑选炸弹。其中判定能否被击中可以采用贪心策略, 炸弹击中的点将区间划分为几个, 此时只要考虑这几个区间能够容纳下几只船, 如果都能容纳, 说明在不能击中船只, 继续二分增大炸弹数, 当然了, 这里轰炸点是需要排序的。还有一点需要注意=>就是题目有两艘船需要有一列间隔, 所以在计算安全区间的时候需要考虑到, 这里设 两炸弹围出的区间长度为empty, 船长度为len, 能容纳的船只数x(未知数) 故有  len*x+(x-1) <= emtpy 得 x<=(empty+1)/(len+1) , 考虑x的实际意义需要向下取整, 所以 x = (empty+1)/(len+1)

瞎搞 : 听说这种贪心+二分是一类题型, 自己完全没有想到一个个炸弹地增加这样去思考, 完全就是在乱想, 还是弱啊........

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<string>
#include<algorithm>
using namespace std;
;
int temp[maxn], bomb[maxn];
;
bool Check(int x)
{
    ; i<=x; i++){
        temp[i] = bomb[i];
    }
    sort(temp+, temp++x);//排序轰炸点, 方便贪心求出安全区间
    ;
    temp[] = ;
    temp[x+] = N+;
    ; i<=x+; i++){
        cnt = cnt + (temp[i]-temp[i-]+-)/(len+);//相当于(empty+1)/(len+1)
    }
    if(cnt>=K) return true;
    else return false;
}
int main(void)
{
    while(~scanf("%d %d %d", &N, &K, &len)){
        int M;
        scanf("%d", &M);
        ; i<=M; i++){
            scanf("%d", &bomb[i]);
        }
        if(Check(M)){//如果M个炸弹一起上都能避免被轰击
            puts("-1");
            continue;
        }
        , R = M, mid;
        while(L <= R){//二分炸弹数
            mid = (R + L)>>;
            ;
            ;
        }
        printf();
    }
    ;
}

FZU 2203 单纵大法好 (二分 && 贪心)的更多相关文章

  1. fzu月赛 2203 单纵大法好 二分

    Accept: 8    Submit: 18Time Limit: 5000 mSec    Memory Limit : 65536 KB  Problem Description 人在做,天在看 ...

  2. FOJ 2203 单纵大法好

    二分答案+验证 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm&g ...

  3. $bzoj2067\ szn$ 二分+贪心

    正解:二分+贪心 解题报告: 传送门$QwQ$ 题目大意就说有一棵树,然后要用若干条线覆盖所有边且不能重叠.问最少要用几条线,在用线最少的前提下最长的线最短是多长. 昂首先最少用多少条线这个还是蛮$e ...

  4. Codeforces Gym 100231B Intervals 线段树+二分+贪心

    Intervals 题目连接: http://codeforces.com/gym/100231/attachments Description 给你n个区间,告诉你每个区间内都有ci个数 然后你需要 ...

  5. 2016-2017 ACM-ICPC CHINA-Final Ice Cream Tower 二分+贪心

    /** 题目:2016-2017 ACM-ICPC CHINA-Final Ice Cream Tower 链接:http://codeforces.com/gym/101194 题意:给n个木块,堆 ...

  6. 【bzoj2097】[Usaco2010 Dec]Exercise 奶牛健美操 二分+贪心

    题目描述 Farmer John为了保持奶牛们的健康,让可怜的奶牛们不停在牧场之间 的小路上奔跑.这些奶牛的路径集合可以被表示成一个点集和一些连接 两个顶点的双向路,使得每对点之间恰好有一条简单路径. ...

  7. Codeforces_732D_(二分贪心)

    D. Exams time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  8. CF732D Exams 二分 贪心

    思路:二分+贪心 提交次数:10次以上 错因:刚开始以为二分(边界,$+1or-1$)写错了,调了半天,后来才发现是$ck()$写错了.开始只判了最后是否小于零,而应该中间一旦小于零就$return\ ...

  9. $CF949D\ Curfew$ 二分/贪心

    正解:二分/贪心 解题报告: 传送门$QwQ$ 首先这里是二分还是蛮显然的?考虑二分那个最大值,然后先保证一个老师是合法的再看另一个老师那里是否合法就成$QwQ$. 发现不太会搞这个合不合法的所以咕了 ...

随机推荐

  1. 【miscellaneous】星光级超低照度摄像机技术分析

    低照度摄像机采用了超灵敏度图像传感器和独有的电子倍增和噪点控制技术能够极大地提高摄像机的灵敏度,并且具备24小时全彩色实时效果,绝无普通低照度摄像机出现的拖尾现象,以满足对夜间高品质监控的需求.    ...

  2. POJ2387 Til the Cows Come Home (最短路 dijkstra)

    AC代码 POJ2387 Til the Cows Come Home Bessie is out in the field and wants to get back to the barn to ...

  3. 洛谷 P2467 地精部落 题解

    题面 好难啊好难啊好难啊~(以后再玩魔兽的时候绝对绝对虐死他) 做完后总结了一下思路; 首先推一下以下三条性质: 1.若两个 i 与 i+1 不相邻,那么我们直接交换这两个数字就可以组成一个新的数列 ...

  4. postgresql 用 like 可以 复制结构包括主键约束

    create tabletablename ( like tablename INCLUDING INDEXES INCLUDING COMMENTS); PostgreSQL 动态表复制(CREAT ...

  5. Gym 101466(完整)

    题目链接 :点击此处 ## Problem A 题意: 给你n个数,重定义两个数之间的加法不进位,求这些数中两个数相加的最大值和最小值. 题解: 字典树.我们首先将前i-1为放入字典树中,然后在查询第 ...

  6. 吴恩达机器学习103:SVM之大间隔分类器的数学原理

    1.向量内积: (1)假设有u和v这两个二维向量:,接下来看一下u的转置乘以v的结果,u的转置乘以v也叫做向量u和向量v的内积,u是一个二维向量,可以将其在图上画出来,如下图所示向量u: 在横轴上它的 ...

  7. iPhone屏幕适配,历史及现状(http://hjcapple.github.io/2014/10/10/iphone-screen.html)

    iPhone屏幕适配,历史及现状 初代iPhone 2007年,初代iPhone发布,屏幕的宽高是320×480像素.下文也是按照宽度,高度的顺序排列.这个分辨率一直到iPhone 3GS的也保持不变 ...

  8. SpringMVC基础01——SpringMVC的知识结构体系

    1.前言 目前在各大互联网公司使用最热门的技术莫过于SpringBoot以及在其基础之上的SpringCloud,然而学习这些技术的基础在于学好Spring和SpringMVC,准确来说SpringM ...

  9. 国产芯片选型手册及厂商名录 版本V2019

  10. Codeforces Round #575 (Div. 3) E. Connected Component on a Chessboard(思维,构造)

    E. Connected Component on a Chessboard time limit per test2 seconds memory limit per test256 megabyt ...