题面

题目链接

P3434 [POI2006]KRA-The Disks

题目描述

一个框,告诉你每一层的宽度。

向下丢给定宽度的木块。

木块会停在卡住他的那一层之上,异或是已经存在的木块之上。

询问丢的最后一个木块停在第几层。

输入输出格式

输入格式

第一行两个整数 $ n $ 和 $ m (1 \leq n, m\leq 300 000) $ 表示水管包含的圆筒数以及盘子总数. 第二行给出 $ n $ 个整数 $ r_1, r_2,...,r_n ( 1 \leq r_i \leq 1 000 000 000) $ 表示水管从上到下所有圆筒的直径. 第三行给出 $ m $ 个整数 $ k_1, k_2,..., k_m ( 1\leq k_j \leq 1 000 000 000) $ 分别表示Johnny 依次扔下去的盘子直径

输出格式

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

输入输出样例

输出样例

7 3
5 6 4 3 6 2 3
3 2 5

输出样例

2

说明

【时空限制】

1000ms,128MB

思路

首先要明确一个事实。如果上面一层比下面一层窄,那么实际上下层可用的面积和上一层是一样大的。所以像这样读入是肯定没有问题的。

scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&h[i]);
if(i!=1) h[i]=min(h[i],h[i-1]);
}

再模拟这个过程。第一个盘子肯定停留在从上往下最后宽度比他大的那一层,然后这个盘子的下面部分都没有用了。所以从后往前扫一遍就行了

AC代码

#include<bits/stdc++.h>
const int maxn=300010;
using namespace std; int n,m;
int h[maxn];
int np; int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&h[i]);
if(i!=1) h[i]=min(h[i],h[i-1]);
}
np=n+1;
for(int i=1,tmp;i<=m;i++)
{
scanf("%d",&tmp);
np--; ///这里要注意。np是上一个盘子的位置,这一个盘子不能掉在np的位置了。
while(h[np]<tmp && np>0) np--;
if(np==0) break;
}
printf("%d",np);
return 0;
}

洛谷 P3434 [POI2006]KRA-The Disks 贪心的更多相关文章

  1. 洛谷P3434 [POI2006]KRA-The Disks [模拟]

    题目传送门 KRA 题目描述 For his birthday present little Johnny has received from his parents a new plaything ...

  2. 洛谷P3434 [POI2006]KRA-The Disks

    P3434 [POI2006]KRA-The Disks 题目描述 For his birthday present little Johnny has received from his paren ...

  3. 洛谷 P3434 [POI2006]KRA-The Disks

    P3434 [POI2006]KRA-The Disks 题目描述 For his birthday present little Johnny has received from his paren ...

  4. 洛谷P3434 [POI2006]KRA-The Disks(线段树)

    洛谷题目传送门 \(O(n)\)的正解算法对我这个小蒟蒻真的还有点思维难度.洛谷题解里都讲得很好. 考试的时候一看到300000就直接去想各种带log的做法了,反正不怕T...... 我永远只会有最直 ...

  5. 洛谷P3444 [POI2006]ORK-Ploughing [枚举,贪心]

    题目传送门 ork 格式难调,题面就不放了. 分析: 一道偏难的贪心和枚举题.考试的时候是弃疗了...yyb巨佬已经讲的很详细了,推荐他的博客.这里小蒟蒻就只放代码了. Code: #include& ...

  6. 洛谷 P2503 [HAOI2006]均分数据 随机化贪心

    洛谷P2503 [HAOI2006]均分数据(随机化贪心) 现在来看这个题就是水题,但模拟赛时想了1个小时贪心,推了一堆结论,最后发现贪心做 不了, 又想了半个小时dp 发现dp好像也做不了,在随机化 ...

  7. [洛谷P3444] [POI2006]ORK-Ploughing

    洛谷题目链接[POI2006]ORK-Ploughing 题目描述 Byteasar, the farmer, wants to plough his rectangular field. He ca ...

  8. 洛谷P3602 Koishi Loves Segments(贪心,multiset)

    洛谷题目传送门 贪心小水题. 把线段按左端点从小到大排序,限制点也是从小到大排序,然后一起扫一遍. 对于每一个限制点实时维护覆盖它的所有线段,如果超过限制,则贪心地把右端点最大的线段永远删去,不计入答 ...

  9. 洛谷P4155 [SCOI2015]国旗计划(贪心,树形结构,基数排序)

    洛谷题目传送门 \(O(n)\)算法来啦! 复杂度优化的思路是建立在倍增思路的基础上的,看看楼上几位巨佬的描述吧. 首先数组倍长是一样的.倍增法对于快速找到\(j\)满足\(l_j+m\le r_i\ ...

随机推荐

  1. Luogu P3007 [USACO11JAN]大陆议会The Continental Cowngress

    P3007 [USACO11JAN]大陆议会The Continental Cowngress 题意 题意翻译 简述:给出\(n\)个法案,\(m\)头牛的意见,每头牛有两个表决格式为"支持 ...

  2. 查找父进程,进程的PEB 进程是否被调试 NtQueryInformationProcess

    这个函数的功能很强大,可以用来查找进程的很多相关信息. 先看一下定义: NTSTATUS WINAPI NtQueryInformationProcess( _In_ HANDLE ProcessHa ...

  3. 页面自动执行(加载)js的几种方法

    https://www.cnblogs.com/2huos/p/js-autorun.html 一.JS方法1.最简单的调用方式,直接写到html的body标签里面: <html> < ...

  4. AppbarLayout的简单用法

    在许多App中看到, toolbar有收缩和扩展的效果, 例如:   appbar.gif 要实现这样的效果, 需要用到: CoordinatorLayout和AppbarLayout的配合, 以及实 ...

  5. java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails

    HTTP Status 500 - Request processing failed; nested exception is org.hibernate.exception.ConstraintV ...

  6. Python的格式化输出--制作名片

    效果图 代码如下: name = input("Your name:")age = int(input("Your age:"))job = input(&qu ...

  7. 浅谈Python小数据池

    什么是小数据池 小数据池是python中提高效率的一种方式,固定数据类型的相同值使用同一内存地址. id 用于获取开辟空间的内存地址 代码块 一个文件,一个模块,一个函数,一个类,终端中的每一行代码都 ...

  8. pycharm2018激活

    pyCharm最新2018最新激活码 选择 Activate new license with License server (用license server 激活) 在 License sever ...

  9. consul原理

    阅读目录 一.使用Consul做服务发现的若干姿势 1.https://www.cnblogs.com/bossma/p/9756809.html 阅读目录 启动第1个Server节点,集群要求要有3 ...

  10. 01Redis入门指南笔记(简介、安装、配置)

    一:简介 Redis是一个开源的高性能key-value数据库.Redis是Remote DIctionary Server(远程字典服务器)的缩写,它以字典结构存储数据,并允许其他应用通过TCP协议 ...