时间限制:c/c++语言1000MS;其他语言3000MS

内存限制:c/c++语言65536KB;其他语言589824KB

题目描述:

战争游戏的至关重要环节就要到来了,这次的结果将决定王国的生死存亡,小B负责首度的防卫工作。首都处于一个四面环山的盆地,周围的n个小山构成一个环,作为预警措施,小B计划在每个小山上设置一个观察哨,日夜不停的瞭望周围发生的情况。

一旦发生外敌入侵事件,山顶上的岗哨将点燃烽烟。若两个岗哨所在的山峰之间没有更高的山峰遮挡两者之间有相连通路,则岗哨可以观察到另一个山峰上的烽烟是否点燃。由于小山处于环上,任意两个小山之间存在两个不同的连接通路,满足上述不遮挡的条件下,一座山峰上岗哨点燃的烽烟至少可以通过一条通路被另一端观察到。对于任意相邻的岗哨,一端的岗哨一定可以发现一端点燃的烽烟。

小B设计的这种保卫方案的一个重要特性是能够观测到对方烽烟的岗哨对的数量,她希望你能够帮助她解决这个问题。

输入:

输入中有多组测试数据。每组测试数据的第一行为一个整数n(3<=n<=10^6),为首都周围的小山数量,第二行为n个整数,依次表示小山的高度h,(1<=h<=10^9)。

输出:

对每组测试数据,在单独的一行中输出能相互观察到的岗哨的对数

样例输入:

5
1 2 4 5 3

样例输出

7

思路:取两座山峰作为两端,当两端的最小值大于中间山峰中的最大值时,这两座山峰是可以互相瞭望到的。

c++代码

#include<iostream>
#include<vector>
using namespace std;int n;  //小山的数量
int location(int num){   //防止位置出界 if(num>=0 && num<n)return num;else if(num<0){return n+num;}else{return num-n;}
}int main(){while(cin>>n){    vector<int> h;  //存小山的高度 for(int i=0; i<n; i++){int tmp;cin>>tmp;h.push_back(tmp);} //forint count=0;for(int i=0; i<n; i++){for(int j=location(i+1); location(j)!=location(i-1); j++){j=location(j);int max=0;for(int k=location(i+1);location(k)!=j; k++){k=location(k);if(h[k]>max)max=h[k];}int min=h[i]<h[j]?h[i]:h[j];if(min>max)count++;}} cout<<count<<endl;}return 0;
}

【京东校招笔试】保卫方案相关推荐

  1. 京东校招java笔试题_2017京东校招笔试编程题:进制转换、辗转相除

    题目描述 时间限制:C/C++语言 1000MS 其他语言:3000MS 内存限制:C/C++语言 65536KB 其他语言:589824KB 题目内容:尽管是一个CS专业的学生,小B的数学基础很好并 ...

  2. 2014年京东校招笔试中的两道java题目

    两道都是选择题 1,调用下面的函数的返回是(C) public static int testt() {try {return 1:}catch(Exception e){return 2;}fina ...

  3. 京东笔试编程题:采购单+保卫方案

    采购单 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 过年啦!小B高兴的不行了,她收到了很多红包,可 ...

  4. 保卫方案(京东笔试题)

    Question 战争游戏的至关重要环节就要到来了,这次的结果将决定王国的生死存亡,小B负责首都的防卫工作.首都位于一个四面环山的盆地中,周围的n个小山构成一个环,作为预警措施,小B计划在每个小山上设 ...

  5. 京东校招java面试题_京东2018校招编程题解答(Java)

    写在前面 本文主要是解答这次校招中京东的笔试编程题,这次京东的笔试编程题比较难,涉及KMP算法.manacher算法等.文中的解法也是在观看了左神(左程云)9月20号在牛客网的直播后,自己花时间写出来 ...

  6. 阿里2020届校招笔试劝退题——你大爷还是你大爷

    阿里巴巴 2020 届的校招笔试结束了,群里哀声一片,来看这些经历了阿里秋招"洗礼"的小伙伴的真实状态. 下面这些人嘛......就有些偏激了,哈哈哈 先来说一下阿里笔试题构成:1 ...

  7. 九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试六十题

    九月迅雷,华为,阿里巴巴,最新笔试面试十题 8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的     i .每次从通里面 ...

  8. 最新校招笔试面试六十题

    原文: 九月十月百度,迅雷,华为,阿里巴巴最新校招笔试面试六十题(11.05) 链接:http://blog.csdn.net/v_july_v/article/details/11921021 分类 ...

  9. 2014九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试题

    九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试六十题 题记 本博客自2010年10月11日开通以来,已经帮助了一大批人找到工作,特别是连续三年在每一年的9.10月份陪伴了至少三届毕业生找工作的旅 ...

最新文章

  1. 【Tensorflow】tf.nn.atrous_conv2d如何实现空洞卷积?膨胀卷积
  2. 在VS2008中DataGridView控件里DataGridViewComboBoxColumn列的Bug
  3. hiho一下 第五周 Hihocoder #1037 : 数字三角形
  4. 《集体智慧编程》第二章(一)
  5. 架构之:微服务架构漫谈
  6. 爬虫(十五):scrapy中的settings详解
  7. 超实用的mysql分库分表策略,轻松解决亿级数据问题
  8. eclipse断点不能下一步_大盘下一步这样走,不能错过
  9. docker server 容器连接sql_借力 Docker ,三分钟搞定 MySQL 主从复制!
  10. Air202入坑指南1---lua开发环境的安装
  11. 间接寻址储存的线性表—基本操作实现
  12. 灯的开关状态 :有 N 个灯放在一排,从 1 到 N 依次顺序编号。有 N 个人也从 1 到 N 依次编号。1 号将灯 全部关闭,2 将凡是 2 的倍数的灯 打开;3 号将凡是 3 的倍数的灯作相
  13. 专访李华明:90后IT程序员的奋斗之路
  14. 百度应用开放平台简介
  15. 在javascript中重新加载/刷新页面的不同方法
  16. uni-app 遮罩层事件穿透解决办法catchtouchmove
  17. RabbitMQ:镜像队列Mirrored queue
  18. 项目接入即时聊天客服系统(环信系统)PHP后端操作
  19. 每日新闻丨​滴滴发布AI技术与解决方案开放平台;中关村发布超300亿创新母基金...
  20. 魔兽争霸3的MapHack制作教程(二)去除战争迷雾

热门文章

  1. ClickHouse JDBC Bridge 的安装及连接sqlserver
  2. MFC 国际化(多国语言)
  3. uni-app实现发送到朋友圈,微信好友等功能兼容小程序app
  4. git pull 时候报错Your configuration specifies to merge with the ref ‘refs/heads/master‘ from the remote,
  5. 特斯拉、吉利车上的那些ADAS系统你都会用吗?
  6. 华为海思硬件逻辑FPGA笔试
  7. 断供?我们不再怕!DTAS 3D-自主可控国产三维公差分析软件重装上阵!
  8. 软装设计知道以下三点,说明你........
  9. 基于airtest的安卓ui自动化实践
  10. 高斯-拉盖尔求积分 Gauss–Laguerre quadrature