20181019测试:T2牛人

这是一道很水的模拟题

只要你知道了算法思路,代码是很好打出来的。

题意解析:

本题的题目看似复杂,但其实可以总结为一句话:

对于任意一个人(比如说你),如果有一个人的一个能力值比你高,那么只要保证你自己的另一个能力不小于他,那么你就是牛人。

算法思路:

知道了这一点后,我们就可以将所有人以其中一个能力作为关键词排序,再将第一个能力相同的人以另一种能力作为关键词排序。

bool cmp(People a,People b)
{
    if(a.a!=b.a)
    {
        return a.a<b.a;
    }
    return a.b>b.b;
}

这样的话,对于每一个人,我们只需要在第一个能力比自己大的人中进行遍历就可以了。

优化:

我们可以用一个数组best[i]从第一个能力值最大的人到i中最大的另一个能力值,对于每一个数,直接与这个best进行比较就可以了,这样就可以把复杂度降到O(n)。

bestb[n]=s[n].b;
for(int i=n-1;i>=1;--i)
{
    bestb[i]=bestb[i+1];
    if(s[i].b>bestb[i])
    {
        bestb[i]=s[i].b;
    }
}

小贴士:

如果是第一个能力值最大的人,那么他一定是牛人!!!

贴代码:

#include<cstdio>
#include<iostream>
#include<queue>
#include<stack>
#include<algorithm>
using namespace std;
struct People
{
    int a,b;
};
People s[100005];
bool cmp(People a,People b)
{
    if(a.a!=b.a)
    {
        return a.a<b.a;
    }
    return a.b>b.b;
}
int n,ans;
int besta,bestb[100005];
int main()
{
    freopen("niuren.in","r",stdin);
    freopen("niuren.out","w",stdout);
    scanf("%d",&n);
    ans=n;
    for(int i=1;i<=n;++i)
    {
        scanf("%d",&s[i].a);
    }
    for(int i=1;i<=n;++i)
    {
        scanf("%d",&s[i].b);
    }
    sort(s+1,s+1+n,cmp);
    besta=s[n].a;
    bestb[n]=s[n].b;
    for(int i=n-1;i>=1;--i)
    {
        bestb[i]=bestb[i+1];
        if(s[i].b>bestb[i])
        {
            bestb[i]=s[i].b;
        }
    }
    for(int i=1;i<=n;++i)
    {
        if(s[i].a!=besta&&s[i].b<bestb[i+1])
        {
            --ans;
        }
    }
    printf("%d",ans);
}

原文地址:https://www.cnblogs.com/Point-King/p/9829538.html

时间: 2024-10-11 08:01:36

20181019测试:T2牛人的相关文章

测试牛人

测试牛人: 公直(黄利). 2004年毕业于北航,先后在大唐软件和上海微创软件任职,经历电信BOSS项目.MSN MX.MAA等项目的数据中心部署测试.功能测试.性能测试等项目.2008年8月加入淘宝,主要经历,负责广告技术基础平台产品测试:负责淘宝-阿里云合作项目飞天夸父项目的测试:负责淘宝广告技术测试工具研发:关键字(熟悉的领域):测试工具.自动化测试.敏捷测试. 丘虚(郑昌丘). 2008年加入淘宝,2009年负责研发了淘宝的测试平台获2009淘宝年度创新大奖二等奖;2010年负责建立了淘

牛人与新手的区别

1.牛人就是越来越觉得自己不牛的人:生手就是觉得自己越来越牛的人. 2.牛人就是越来越感觉不会的东西越来越多的人:生手就是觉得不会的东西越来越少的人. 3.牛人就是代码写得越来越简单的人:生手就是代码写得越来越复杂的人. 4.牛人就是动手之前总是不知道如何动手的人:生手就是动手之前根本不用考虑如何动手的人. 5.牛人就是有时候根本都不知道自己在用范式的人:生手就是要么不知道范式,要么千方百计使用范式的人. 6.牛人是全生命周期都在重构的人:生手就是到不得已的时候才想起重构的人. 7.牛人的代码就

paper 61:计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接

转载出处:blog.csdn.net/carson2005 以下链接是本人整理的关于计算机视觉(ComputerVision, CV)相关领域的网站链接,其中有CV牛人的主页,CV研究小组的主页,CV领域的paper,代码,CV领域的最新动态,国内的应用情况等等.打算从事这个行业或者刚入门的朋友可以多关注这些网站,多了解一些CV的具体应用.搞研究的朋友也可以从中了解到很多牛人的研究动态.招生情况等.总之,我认为,知识只有分享才能产生更大的价值,真诚希望下面的链接能对朋友们有所帮助.(1)goog

IT牛人博客

IT牛人博客,参见:http://blog.csdn.net/freebird_lb/article/details/8210276 团队技术博客 淘宝UED淘宝用户体验团队 淘宝核心系统淘宝核心系统团队博客 阿里巴巴数据库团队专注数据库管理开发运维 淘宝通用产品专注JAVA技术 淘宝QA致力于做测试的行业标准 淘宝搜索技术关注技术 关注搜索 量子恒道专注大数据统计 百度搜索研发关注搜索相关技术 EMC中国研究院关注于云计算和大数据 贰号楼肆层阿里巴巴平台技术部 阿里数据平台阿里巴巴数据平台 百

常用牛人主页链接(计算机视觉、模式识别、机器学习相关方向,陆续更新。。。。)【转】

转自:http://blog.csdn.net/goodshot/article/details/53214935 目录(?)[-] The Kalman Filter 介绍卡尔曼滤波器的终极网页 Navneet DalalHistograms of Oriented Gradients for Human Detection 牛人主页(主页有很多论文代码) Serge Belongie at UC San Diego Antonio Torralba at MIT Alexei Ffros a

计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接

提示:本文为笔者原创,转载请注明出处:blog.csdn.net/carson2005 以下链接是本人整理的关于计算机视觉(ComputerVision, CV)相关领域的网站链接,其中有CV牛人的主页,CV研究小组的主页,CV领域的paper,代码,CV领域的最新动态,国内的应用情况等等.打算从事这个行业或者刚入门的朋友可以多关注这些网站,多了解一些CV的具体应用.搞研究的朋友也可以从中了解到很多牛人的研究动态.招生情况等.总之,我认为,知识只有分享才能产生更大的价值,真诚希望下面的链接能对朋

一些牛人榜样,多看看他们写的东西

都是很老的内容了.无聊的时候看下,激励一下 淘宝技术委员会是由淘宝技术部高级技术人员组成的一个组织,共分为系统分会.  算法分会. C/C++分会.Java分会.数据分会.UED分会.测试分会七个分会. 淘宝技术委员会的愿景是淘宝成为技术人才向往的乐土,高级技术人员的发源地:技术委员会的使命是帮助淘宝建立业界一流的技术团队.同时,技术委员会也是技术人员间交流技术和想法的一个平台.我们努力让淘宝成为技术的舞台,我们为愿意从事互联网事业的技术人一个接触世界上顶尖网站架构的机会!我们期待着和一群有着挑

计算机视觉牛人博客和代码汇总

每个做过或者正在做研究工作的人都会关注一些自己认为有价值的.活跃的研究组和个人的主页,关注他们的主页有时候比盲目的去搜索一些论文有用多了,大牛的或者活跃的研究者主页往往提供了他们的最新研究线索,顺便还可八一下各位大牛的经历,对于我这样的小菜鸟来说最最实惠的是有时可以找到源码,很多时候光看论文是理不清思路的. 1 牛人Homepages(随意排序,不分先后): 1.USC Computer Vision Group:南加大,多目标跟踪/检测等: 2.ETHZ Computer Vision Lab

你应该知道的8个Java牛人

简单介绍一下8个Java牛人,他们为Java社区,创建了框架(framework),产品或者是写书,影响甚至改变了Java开发的方法 8.Tomcat创始人 James Duncan Davidson,是当时Sun公司的软件工程师(1997-2001),创建了Java的Web服务器Tomcat,Tomcat广泛应用于Java Web开发的各个领域. 7.测试驱动开发JUnit创始人 Kent Beck,极限编程和测试驱动开发方法的缔造者.此外,他还创造了JUnit,JUnit目前一次成为Java