洛谷 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 贪心的更多相关文章
- 洛谷P3434 [POI2006]KRA-The Disks [模拟]
题目传送门 KRA 题目描述 For his birthday present little Johnny has received from his parents a new plaything ...
- 洛谷P3434 [POI2006]KRA-The Disks
P3434 [POI2006]KRA-The Disks 题目描述 For his birthday present little Johnny has received from his paren ...
- 洛谷 P3434 [POI2006]KRA-The Disks
P3434 [POI2006]KRA-The Disks 题目描述 For his birthday present little Johnny has received from his paren ...
- 洛谷P3434 [POI2006]KRA-The Disks(线段树)
洛谷题目传送门 \(O(n)\)的正解算法对我这个小蒟蒻真的还有点思维难度.洛谷题解里都讲得很好. 考试的时候一看到300000就直接去想各种带log的做法了,反正不怕T...... 我永远只会有最直 ...
- 洛谷P3444 [POI2006]ORK-Ploughing [枚举,贪心]
题目传送门 ork 格式难调,题面就不放了. 分析: 一道偏难的贪心和枚举题.考试的时候是弃疗了...yyb巨佬已经讲的很详细了,推荐他的博客.这里小蒟蒻就只放代码了. Code: #include& ...
- 洛谷 P2503 [HAOI2006]均分数据 随机化贪心
洛谷P2503 [HAOI2006]均分数据(随机化贪心) 现在来看这个题就是水题,但模拟赛时想了1个小时贪心,推了一堆结论,最后发现贪心做 不了, 又想了半个小时dp 发现dp好像也做不了,在随机化 ...
- [洛谷P3444] [POI2006]ORK-Ploughing
洛谷题目链接[POI2006]ORK-Ploughing 题目描述 Byteasar, the farmer, wants to plough his rectangular field. He ca ...
- 洛谷P3602 Koishi Loves Segments(贪心,multiset)
洛谷题目传送门 贪心小水题. 把线段按左端点从小到大排序,限制点也是从小到大排序,然后一起扫一遍. 对于每一个限制点实时维护覆盖它的所有线段,如果超过限制,则贪心地把右端点最大的线段永远删去,不计入答 ...
- 洛谷P4155 [SCOI2015]国旗计划(贪心,树形结构,基数排序)
洛谷题目传送门 \(O(n)\)算法来啦! 复杂度优化的思路是建立在倍增思路的基础上的,看看楼上几位巨佬的描述吧. 首先数组倍长是一样的.倍增法对于快速找到\(j\)满足\(l_j+m\le r_i\ ...
随机推荐
- 在AlexNet中LRN 局部响应归一化的理
在AlexNet中LRN 局部响应归一化的理 一.LRN技术介绍: Local Response Normalization(LRN)技术主要是深度学习训练时的一种提高准确度的技术方法.其中caffe ...
- Leetcode513. Find Bottom Left Tree Value找树左下角的值
给定一个二叉树,在树的最后一行找到最左边的值. 示例 1: 输入: 2 / \ 1 3 输出: 1 示例 2: 输入: 1 / \ 2 3 / / \ 4 5 6 / 7 输出: 7 注意: 您可以假 ...
- mac下企业邮件不能发送的问题
1,选用服务器:smtp.example.qq.com 使用ssl 用密码 端口:465
- [转]WPF命令集 Command
在我们日常的应用程序操作中,经常要处理各种各样的命令和进行相关的事件处理,比如需要复制.粘贴文本框中的内容;上网查看网页时,可能需要返回上一网页查看相应内容;而当我们播放视频和多媒体时,我们可能要调节 ...
- [转]Windows钩子
Windows钩子 Windows应用程序的运行模式是基于消息驱动的,任何线程只要注册了窗口类就会有一个消息队列来接收用户的输入消息和系统消息.为了取得特定线程接收或发送的消息,就要 Windows提 ...
- Java SE、Java EE、Java ME三者的区别
1. Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程 ...
- 开源代码分析-react-native-eyepetizer
目录结构: app----imgs --- pages ------ home ------ explore ------ follow ------ profile ------ selected ...
- C# 全局Hook在xp上不回调
最近做了个捕捉全局鼠标,获取目标窗体内的控件文本信息,点击的按钮信息.用的全局钩子.在win10上运行正常,部署到xp系统上就没有反应.查了些资料,解决了此问题. 原本安装钩子的写法如下: Nativ ...
- Redis源码解析:14Redis服务器与客户端间的交互
Redis服务器是典型的一对多服务器程序,通过使用由IO多路复用技术实现的文件事件处理器,Redis服务器使用单线程单进程的方式来处理命令请求,并与多个客户端进行网络通信. Redis客户端与服务器之 ...
- 常用web字体的使用指南
而真正的挑战在于中文字体,由于中文字体组成的特殊性导致其体积过于庞大,除了操作系统内置的字体之外,我们很难在网站上应用其他的字体.在可选性很差的前提之下,如何正确的使用中文字体呢? 首先,以下的字体声 ...