51Nod - 1279
Input第1行:2个数N, M中间用空格分隔,N为井的深度,M为盘子的数量(1 <= N, M <= 50000)。
第2 - N + 1行,每行1个数,对应井的宽度Wi(1 <= Wi <= 10^9)。
第N + 2 - N + M + 1行,每行1个数,对应盘子的宽度Di(1 <= Di <= 10^9)Output输出最终落到井内的盘子数量。Sample Input
7 5 5 6 4 3 6 2 3 2 3 5 2 4
Sample Output
4
题解:这道题首先是先输入的宽度是在最底下,由下往上,,因为下一层的能通过的宽度取决于当下与上一层的宽度的较小值,所以可以先把宽度重新设定比如5 6 4 3 6 2 3 就应该是5 5 4 3 3 2 2 ,
正好变成有序的 然后开始比较要进来的木板与井的宽度,决定能落在哪里;盘子每次到达什么地方,也就是在这个有序的序列中第一个 >= 盘子的宽度的地方,然后就让这个位置加+1,下次再从这个位置+1开始到最后查找,也就是二分查找 说的有点不清楚,看代码,
只要掌握lower_bound()返回一个 iterator 它指向在[first,last)标记的有序序列中可以插入value,而不会破坏容器顺序的第一个位置,而这个位置标记了一个不小于value 的位置。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstdlib>
using namespace std;
const int MAXN = 50000+5;
const int INF = 1e9+100;
int W[MAXN], D[MAXN];
int main()
{int n,m;while(~scanf("%d%d",&n,&m)){W[n+1] = INF;for(int i=0; i<n; i++){scanf("%d",&W[n-i]);W[n-i] = min(W[n-i+1],W[n-i]);//调整井的宽度,变成一个有序的}for(int i=0; i<m; i++)scanf("%d",&D[i]);int ans = 0, tp = 1;for(int i=0; i<m; i++){int tmp = lower_bound(W+tp, W+n+1, D[i])-W;if(tmp == n+1)break;tp = tmp+1;ans++;}cout<<ans<<endl;}return 0;
}
51Nod - 1279相关推荐
- 51nod 1279搬盘子
1279 扔盘子 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 有一口井,井的高度为N,每隔1个单位它的宽度有变化.现在从井口往下面扔圆盘,如果圆盘的 ...
- 【51Nod - 1279】 扔盘子(思维)(on-p会超时)
题干: 有一口井,井的高度为N,每隔1个单位它的宽度有变化.现在从井口往下面扔圆盘,如果圆盘的宽度大于井在某个高度的宽度,则圆盘被卡住(恰好等于的话会下去). 盘子有几种命运:1.掉到井底.2.被卡住 ...
- 51nod 1617 奇偶数组
传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...
- 51NOD 1773:A国的贸易——题解
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1773 参考1:FWT讲解 https://www.cnblogs.com ...
- 51nod 1040:最大公约数之和(数论)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. ...
- (DP)51NOD 1183 编辑距离
编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除 ...
- 斜率小于0的连线数量 51Nod - 1107 (树状数组+离散化)
二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4, ...
- 51Nod 1003 阶乘后面0的数量(数学,思维题)
1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720 ...
- 51nod 1270 数组的最大代价
1270 数组的最大代价 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 数组A包含N个元素A1, A2......AN.数组B包 ...
最新文章
- 算力超越 iPhone,芯片堪比Mac,网友:“买来能干啥?”
- python写游戏脚本-python实现简单贪吃蛇游戏
- Cow Toll Paths(floyd变形)
- [JSON].valueOf( keyPath )
- qt中如何模拟按钮点击_如何快速在 Shopify 中加入按钮
- tensorflow第十一步CNN表情识别
- elk 安装与所遇问题
- 个人计算机的未来,未来的个人电脑将会成为光子计算机的天下
- python安装与开发环境搭建实验总结_python开发环境安装配置
- OFFICE技术讲座:影响文字效果的四个因素是哪些
- 【路径规划】基于matlab遗传结合模拟退火算法仓库拣货小车最优路径规划【含Matlab源码 649期】
- 阿里巴巴 EasyExcel (web版) 上传与下载(超详细) Excel上传下载
- 大行bya412和java513_真实解密大行bya412和k3区别在哪里?哪款最好?老司机透漏评测...
- input隐藏域传值
- 云服务器win10系统搭建ftp,win10系统搭建ftp服务器
- Rust Async: smol源码分析-Executor篇
- Hack the box靶机 October
- 新酒店图集 | 北京大兴希尔顿、昆明喜来登和昆明德尔塔、银川JW万豪与银川万怡双品牌酒店陆续开业...
- ag-grid with web api
- 汽车尾灯控制电路代码
热门文章
- 显卡之黄金宝典(转东转西)
- Python操作Excel造成的科学记数法问题
- 2020.08.09网易云数据分析师提前批笔试
- strcasecmp php,php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
- c语言编程IP地址转换,用C语言将二进制转换为IP地址
- python抽签代码_python3 实现口罩抽签的功能
- 【Http Referer】
- 阅读心得6:《首次公开!菜鸟弹性调度系统的架构设计》
- 瑜伽教程: 一个跨平台的布局引擎
- Go语言全栈开发:模板语言