51Nod 1287 加农炮 ( 暴力/线段树
来源:互联网 发布:python发展前景 编辑:程序博客网 时间:2024/05/16 10:21
Description
一个长度为M的正整数数组A,表示从左向右的地形高度。测试一种加农炮,炮弹平行于地面从左向右飞行,高度为H,如果某处地形的高度大于等于炮弹飞行的高度H(A[i] >= H),炮弹会被挡住并落在i - 1处,则A[i - 1] + 1。如果H <= A[0],则这个炮弹无效,如果H > 所有的A[i],这个炮弹也无效。现在给定N个整数的数组B代表炮弹高度,计算出最后地形的样子。
例如:地形高度A = {1, 2, 0, 4, 3, 2, 1, 5, 7}, 炮弹高度B = {2, 8, 0, 7, 6, 5, 3, 4, 5, 6, 5},最终得到的地形高度为:{2, 2, 2, 4, 3, 3, 5, 6, 7}。
Input
第1行:2个数M, N中间用空格分隔,分别为数组A和B的长度(1 <= m, n <= 50000)
第2至M + 1行:每行1个数,表示对应的地形高度(0 <= A[i] <= 1000000)。
第M + 2至N + M + 1行,每行1个数,表示炮弹的高度(0 <= B[i] <= 1000000)。
Output
输出共M行,每行一个数,对应最终的地形高度。
Sample Input
9 1112043215728076534565
Sample Output
222433567
题解:
题目本意应该是让用线段树过的 结果被O(n*m)的无脑暴力过了
这就告诉我们 比赛时题目实在不会写 就暴力搞搞吧 说不定就过了
数据太水
AC代码
暴力写法
#include <bits/stdc++.h>using namespace std;const int N = 1e5;int arr[N], brr[N];int main(){ int n, m; int ans = 0; scanf("%d%d",&n,&m); for(int i = 0;i < n; i++) { scanf("%d",&arr[i]); ans = max(ans,arr[i]); } for(int i = 0;i < m; i++) { scanf("%d",&brr[i]); if(brr[i] < arr[0] || brr[i]>ans) continue; for(int j = 0;j < n; j++) { if(arr[j]>=brr[i]) { arr[j-1]++; ans = max(arr[j-1],ans); break; } } } for(int i = 0;i < m; i++) printf("%d\n",arr[i]);return 0;}
线段树写法(有空补)
这里写代码片
0 0
- 51Nod 1287 加农炮 ( 暴力/线段树
- 51nod 1287 加农炮 【线段树】
- 51nod 1287 加农炮(二分/线段树)
- 51nod 1287加农炮【线段树*好题】
- 51nod-1287 加农炮
- 51nod 1287 加农炮
- 【51Nod】1287 加农炮
- [51nod 1287]加农炮
- 51nod 1287 加农炮
- 51nod 1287 加农炮
- 51nod:加农炮(线段树+单调性)
- 51nod 1287: 加农炮 好题啊好题
- 51nod 1287 加农炮【二分】
- 51nod 1287 加农炮 思维
- 51nod 1287 加农炮 acm
- 51NOD1287 加农炮(线段树)
- 51nod1287 加农炮 线段树
- 51nod 1287 加农炮 (暴力可过,此题有毒)
- 【软考】计算机病毒与木马
- 指针与数组
- 详解SpringMVC中Controller的方法中参数的工作原理
- PAT1006. 换个格式输出整数 (15)
- PAT 乙等 1002 C语言
- 51Nod 1287 加农炮 ( 暴力/线段树
- 可视化展示神经网络是如何将分类正确率提升的
- SpringMVC关于json、xml自动转换的原理研究
- CAN总线技术详解
- Flume中的HDFS Sink配置参数说明
- [信号与信息处理]系列概述
- reactnative BackAndroid 实现按返回键2次退出
- C/S架构框架搭建
- 4-5 链式表操作集 (20分) PTA