• poj 1634


    题意:给你m个员工,和n次的查询。

    每个员工有他独立的id,收入,和身高

    上司的收入一定大于下属的收入,身高也是大于等于下属的。

    每个公司的头头没有上司,上司的编号为0,,同时他也是收入最多身高最高的人。

    n次查询。

    对于每一次查询,输出它对应的上司的其下属的个数。

    Memory: 4572K		Time: 766MS
    Language: C++		Result: Accepted
    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    using namespace std;
    
    struct moreid{
        int id;
        int father;
        int son;
        int hight;
        int money;
    }s[30005];
    int id[1000000];  //这个数组是用来找id所对应的结构体的。
    
    int cmp(const void *a,const void *b)   //根据收入的多少来进行排序。
    {
        return(*(moreid *)a).money-(*(moreid *)b).money;
    }
    
    int main()
    {
        int n,a,b,x;
        scanf("%d",&n);
        while(n--)
        {
            memset(id,0,sizeof(id));
            scanf("%d%d",&a,&b);
            for(int i=0;i<a;i++)
            {
                scanf("%d%d%d",&s[i].id,&s[i].money,&s[i].hight);
                s[i].son=0,s[i].father=0;    //对每个编号的下属和上司进行归零。
            }
            qsort(s,a,sizeof(s[0]),cmp);
            for(int i=0;i<a;i++)
            {
                id[s[i].id]=i;    //对结构体的编号的员工身份进行一一对应,用map也是可以的。
                for(int j=i+1;j<a;j++)
                {
                    if(s[i].hight<=s[j].hight)    //如果身高要小于第一个钱比他高的人,那么那没人就是他的上司。
                    {
                        s[i].father=s[j].id;  //记录上司
                        s[j].son+=s[i].son+1;   //上司的下属就是它的直属下属加上它下属的下属。
                        break;    //找到了直属后,记得跳出。
                    }
                }
            }
            for(int i=0;i<b;i++)
            {
                scanf("%d",&x);
                 printf("%d %d
    ",s[id[x]].father,s[id[x]].son);
            }
        }
        return 0;
    }
  • 相关阅读:
    c++ qt安装配置教程
    PKi系统
    IKE协议
    Kerberos
    RADIUS和Diameter
    RageFrame学习笔记:创建路由+导入layui
    TP6框架--EasyAdmin学习笔记:数据表添加新参数,如何强制清除缓存
    JS原生2048小游戏源码分享
    风场可视化学习笔记:openlayers
    vue3.0 demo代码记录
  • 原文地址:https://www.cnblogs.com/Tree-dream/p/5582454.html
Copyright © 2020-2023  润新知