BZOJ 1510 [POI2006] Kra-The Disks

描述

Johnny 在生日时收到了一件特殊的礼物,这件礼物由一个奇形怪状的管子和一些盘子组成. 这个管子是由许多不同直径的圆筒(直径也可以相同) 同轴连接而成. 这个管子的底部是封闭的,顶部是打开的.

每个圆筒的高度都是相等的, 玩具中所带的盘子也是一些高度和它们相同的圆筒,直径有大有小.

Johnny 发明了一种游戏,把盘子从管子顶部一个接一个的扔下去,他想知道最后这些盘子落在了哪,假设盘子落下过程中圆心和管子的轴一直保持一致,盘子掉下去以后,要么被某个圆筒卡住,要么就是因为掉在了以前的一个盘子上而停住.

Johnny 想知道他最后扔下去的那个盘子掉在了哪个位置,你来帮他吧.

输入

第一行两个整数 n 和 m表示水管包含的圆筒数以及盘子总数.

第二行给出 n 个整数 r1, r2,...,rn表示水管从上到下所有圆筒的直径. 第三行给出 m 个整数 k1, k2,..., km分别表示 Johnny 依次扔下去的盘子直径.

输出

一个整数输出最后一个盘子掉在了哪一层,如果盘子不能扔进水管,那么打印 0.

样例

Sample Input
7 3
5 6 4 3 6 2 3
3 2 5
Sample Output
2

提示

1<= n, m<= 300 000;1 <=ri<= 1 000 000 000 for 1<= i<= n;1<= kj<= 1000 000 000 for 1<= j<= m


对于某一层来说,如果它比前面一层要宽的话,那么那一层多出来的宽度什么卵用都没有,会被上一层卡住。

所以可以扫一遍,找到每一层的有用的宽度。

接下来再扫一遍,找到每一个盘子会落在哪一层。

去他的二分!

O(n)复杂度就可以了!

代码蒯上

#include<iostream>
#include<iomanip>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
inline int gotcha()
{
register int _a=0;bool _b=1;register char _c=getchar();
while(_c<'0' || _c>'9'){if(_c=='-')_b=0;_c=getchar();}
while(_c>='0' && _c<='9')_a=_a*10+_c-48,_c=getchar();
return _b?_a:-_a;
}
const int _ = 300002;
int r[_]={0},pl[_]={0},n,m;
int main()
{
register int i,mi=2e9,now;
n=gotcha(),m=gotcha();now=n+1;
for(i=1;i<=n;i++)r[i]=gotcha();
for(i=1;i<=m;i++)pl[i]=gotcha();
for(i=1;i<=n;i++)mi=min(mi,r[i]),r[i]=mi;
for(i=1;i<=m;i++)
{
for(now--;now>=1;--now)if(pl[i]<=r[now])break;
if(now<=0)break;
}
printf("%d",now);
return 0;
}

模拟 - BZOJ 1510 [POI2006] Kra-The Disks的更多相关文章

  1. bzoj 1510 [POI2006]Kra-The Disks 二分

    1510: [POI2006]Kra-The Disks Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 466  Solved: 272[Submit][ ...

  2. bzoj 1510 [POI2006]Kra-The Disks——思路

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1510 #include<iostream> #include<cstdio ...

  3. BZOJ 1510: Kra-The Disks

    Johnny 在生日时收到了一件特殊的礼物,这件礼物由一个奇形怪状的管子和一些盘子组成. 这个管子是由许多不同直径的圆筒(直径也可以相同) 同轴连接而成. 这个管子的底部是封闭的,顶部是打开的. 下图 ...

  4. bzoj 1510 Kra-The Disks —— 思路

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1510 一个位置比上面还宽就没用了,而且会收到上面的限制,所以跟上面取 min 即可: 然后维 ...

  5. bzoj 1513 [POI2006]Tet-Tetris 3D(二维线段树)

    1513: [POI2006]Tet-Tetris 3D Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 540  Solved: 175[Submit ...

  6. bzoj 1513 POI2006 Tet-Tetris 3D 二维线段树+标记永久化

    1511: [POI2006]OKR-Periods of Words Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 351  Solved: 220[S ...

  7. bzoj 1520 [POI2006]Szk-Schools 费用流

    [POI2006]Szk-Schools Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 743  Solved: 381[Submit][Status][ ...

  8. bzoj 1517 [POI2006]Met 贪心

    [POI2006]Met Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 203  Solved: 108[Submit][Status][Discus ...

  9. BZOJ 1511: [POI2006]OKR-Periods of Words

    Description 求一个最长周期. Sol KMP. 一个点的最短周期就是 \(i-next[i]\) 此外 \(i-next[next[i]],i-next[next[next[i]]]\) ...

随机推荐

  1. Spring事务的5种隔离级别

    概述:isolation设定事务的隔离级别,事务管理器根据它来控制另外一个事务可以看到本事务内的哪些数据. 定义的5个不同的事务隔离级别: DEFAULT:默认的隔离级别,使用数据库默认的事务隔离级别 ...

  2. 使用Karabiner为Mac内置键盘、HHKB进行映射

    使用Karabiner为Mac内置键盘.HHKB进行映射 Table of Contents 1. 引言 2. 什么是Karabiner和配置方法的基本说明 3. 内置键盘设置 4. HHKB设置 5 ...

  3. Brackets安装angularjs插件

    Brackets是Adobe公司研发的一款开源WEB前端开发框架,界面清爽简约,代码提示功能比较强大,而且支持第三方插件,其提供的插件库中有大量的对Brackets感兴趣的开发人员所开发的插件,使用者 ...

  4. mysql 5.7.20 在线安装与卸载(yum卸载与rpm卸载方式)

    mysql5.7.20和之前的5.7.16版本不同,解压后没有data文件,需要自己建立 1.把下载的mysql5.7.20放到目录:/usr/local/2.卸载cenos上预装的mysql查看已安 ...

  5. PHP中调用SVN命令更新网站方法(解决文件名包含中文更新失败的问题)

    想说写一个通过网页就可以执行 SVN 升级的程序,结果并不是我想得那样简单,有一些眉角需要注意的说. 先以 Apache 的用户帐号执行 SVN checkout,这样 Apache 才有 SVN 的 ...

  6. [Git]常用的Git命令行

    Commit的用法 git init [+项目名] git add . (注意这里在add后面的空格和点是不能省略的) git status git commit -m “message”(这里的me ...

  7. Codeforces 464E #265 (Div. 1) E. The Classic Problem 主席树+Hash

    E. The Classic Problem http://codeforces.com/problemset/problem/464/E 题意:给你一张无向带权图,求S-T的最短路,并输出路径.边权 ...

  8. mdns小结

    mdns的功能和普通DNS很类似,即提供主机名到IP地址的解析服务.   mdns一些基本特性: 1,mdns主要为小型私有网络(不存在DNS)提供名称解析. 2,mdns使用多播(Multicast ...

  9. [手势识别] CNN + OpenCV 手势识别记录

    这几天没事,想着再学点一些视觉识别方向的东西,因为之前做了验证码识别,有了机器学习的信心,因此这次打算做个手势识别,参考了很多网上的图像处理方式,中间也遇到了很多问题,最终算是做出来了吧. 1.训练集 ...

  10. DROP OPERATOR - 删除一个操作符

    SYNOPSIS DROP OPERATOR name ( lefttype | NONE , righttype | NONE ) [ CASCADE | RESTRICT ] DESCRIPTIO ...