第九集,离间计

TimeLimit:1000MS  MemoryLimit:128MB
64-bit integer IO format:%I64d
 
Problem Description

  拥有了超强的体能和跑步速度后,小A的信心极度膨胀。正当他准备潜入特工们的聚会地点套取情报的时候,小A发现组织的守卫非常严密,根本没有漏洞可钻。最后小A只得返回宾馆同小C商量。

通过小C,小A知道了特工组织内有着严谨的等级排名制度,然而这等级并不是严格按照能力来排的,但可怜的特工们并不全都知道。聪明的小A立马想到了离间计,即通过某种方式告知每个特工那些排名比他高但能力比他低的人,刺激低等级的特工去试探高等级的特工,让他们明白后从而引起内乱,但又担心排名相距太大,低排名的特工会因畏惧而连基本的试探也不敢去,毕竟低等级的特工长期处在高等级的特工的淫威下嘛。(不明白小A为什么会知道该组织内部的等阶排名吗?因为小C曾是该组织的内部高层人员…)

现在给出一个序列,序列中的第i个值表示排名为i的特工的能力值,要求求出每个特工的排名前面第一个比他的能力值小的特工的排名,最高排名从0开始,如果不存在,则输出-1

在成功的离间了部分的特工,小A才能更加容易的潜入特工中获取情报、

Input

多组测试数据。

第一行输入一个整数n(0<n<=100000)

接下来有n个数ai(0<=ai<=1000000).ai表示排名为i的员工的能力值(0<=i<n)。

Output

输出n个数,分别表示每个排名为i(0<=i<n)的特工排在其前面且能力值小于他的特工的排名.

SampleInput
1
5
5
1 2 3 4 5
SampleOutput
-1
-1 0 1 2 3

n=100W常规遍历,那么每次都要遍历一次,那么复杂度达到O(n2)直接超时,于是我们进行优化。

假设序列为 3 1 2 5 4

遍历到1时,那么之后不论什么情况,能力值最小的特工必定是1,而不可能是3,那么3就可以丢掉了。

于是我们猜想用一个递增序列储存储存下可能是答案的特工。不可能是答案的丢掉。那么我们就想到了栈。然后看一段推到过程。序列表示当前栈元素。

结论:1,当栈空,答案为-1

   2,当新元素大于栈顶,答案就是栈顶元素的编号。

   3,新元素小于栈顶,那么意味着栈顶已经失去作用了。弹出。继续比较。之后的结果只有两个,结论1和结论2.

用结构储存序列,下标,答案。value代表能力值,num代表数字

核心代码。

FJUT第三周寒假作业《第九集,离间计》栈的更多相关文章

  1. 福建工程学院16级第一周寒假作业E题----第七集,奇思妙想

    第七集,奇思妙想                                                                                            ...

  2. 关于第三次寒假作业之C++Calculator项目的情况:

    一.仓库地址: object-oriented: 二.作业要求: Calculator: 三.完成本次作业的情况及感受: 刚接触到这个题目的时候,自己就是那丈二的和尚,摸不着头脑,由于自己视频找得比较 ...

  3. JAVA第三周课后作业

    JAVA课后作业 一.枚举类型 代码: enum Size{SMALL,MEDIUM,LARGE}; public cl ass EnumTest { public static void main( ...

  4. FJUT16级第一周寒假作业题解D题

    题目链接:http://210.34.193.66:8080/vj/Contest.jsp?cid=160#P3 第八集,体能训练 TimeLimit:1000MS  MemoryLimit:128M ...

  5. FJUT16级第一周寒假作业题解J题

    题目链接:http://210.34.193.66:8080/vj/Contest.jsp?cid=160#P9 涨姿势之区间刷新 TimeLimit:2000MS  MemoryLimit:128M ...

  6. Python第三周第一次作业中关于工程目录各种导入的模拟学习

    目录 Python工程目录 导入自定义模块, 包 记录的缘由 模块搜索路径 模块: 导入模块 导入函数 导入类 多个类 @(Python第三周第一次作业中工程目录,模拟学习) Python工程目录 导 ...

  7. FJUT16级第一周寒假作业题解I题

    涨姿势题3 TimeLimit:1000ms  MemoryLimit:128000KB 64-bit integer IO format:%lld Problem Description 涨姿势题就 ...

  8. FJUT16级第一周寒假作业题解G题

    题目链接:http://210.34.193.66:8080/vj/Contest.jsp?cid=160#P6 涨姿势题1 TimeLimit:1000MS  MemoryLimit:128000K ...

  9. 16级第二周寒假作业H题

    快速幂(三) TimeLimit:2000MS  MemoryLimit:128MB 64-bit integer IO format:%I64d Problem Description 计算( AB ...

随机推荐

  1. Spring Data Jpa简单了解

    原文来源:http://www.cnblogs.com/xuyuanjia/p/5707681.html 以下是自己简单整理原有文章,其实就是在原来文章基础上化重点以及可能会有所删减的方式进行整理,需 ...

  2. python基础——内置函数

    python基础--内置函数  一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highl ...

  3. hdu 1880 魔咒字典

    https://vjudge.net/problem/HDU-1880 题意:略 思路: 一开始就是想到了正确的思路,但是代码写炸了,死活过不了.这题嘛,就是建议一个魔咒与咒语的双向映射.首先用字符串 ...

  4. c#:ThreadPool实现并行分析,并实现线程同步结束

    背景: 一般情况下,经常会遇到一个单线程程序时执行对CPU,MEMORY,IO利用率上不来,且速度慢下问题:那么,怎么解决这些问题呢? 据我个人经验来说有以下两种方式: 1.并行.多线程(Parall ...

  5. IndentationError : expected an indented block

    IndentationError:在python的条件语句出现 expected an indented block问题 是指缩进问题,比如for循环里面的print前面需要四个空格. Python语 ...

  6. Spring Cloud学习笔记-003

    服务提供者:向注册中心注册服务 1. 新建maven工程,骨架选择quickstart,工程名称:demo-member 2. 加入相关依赖: 3. 编写服务接口: 4. 在src\main\reso ...

  7. bootstrap——bootstrap-table(2)

    先看问题现象: 问题描述: 点击"管理子账号"按钮,预期是按照传递的参数更新列表数据,但是最后才发现这个列表根本不会刷新,只会继承前一次的数据,意思也就是不会去请求第二次. 解决方 ...

  8. C# webBrowser 控件赋值

    string body = PostWebRequest(txtURL.Text, textBox2.Text); if (webBrowser1.ReadyState != WebBrowserRe ...

  9. 全球性WannaCry蠕虫勒索病毒感染前后应对措施

    前言:针对WannaCrypt勒索病毒的讨论和技术文章是铺天盖地,大量的技术流派,安全厂家等纷纷献计献策,有安全厂家开发各种安全工具,对安全生态来说是一个好事,但对个人未必就是好事,我们国家很多用户是 ...

  10. servlet之隐藏域

    隐藏域的实现, 商品对象 package app02b;public class Customer {        private int id;    private String name;   ...