题意:给你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\n",s[id[x]].father,s[id[x]].son);
}
}
return 0;
}

poj 1634的更多相关文章

  1. POJ 1634 Who's the boss?

    题意: 一个员工A的直接上司是那些薪水大于A,并且身高>=A的人中薪水最少的一个. 主席CEO的薪水最高,且身高也是最高的. 有多组数据. 每组数据给出m个员工,和q个询问. 每个员工有id.薪 ...

  2. POJ 题目分类(转载)

    Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...

  3. (转)POJ题目分类

    初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...

  4. poj分类

    初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      ( ...

  5. poj 题目分类(1)

    poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...

  6. POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)

    本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...

  7. POJ题目分类(转)

    初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...

  8. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  9. POJ题目(转)

    http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html 初期:一.基本算法:     (1)枚举. (poj1753,poj29 ...

随机推荐

  1. Make命令

    Make命令 一.Make的概念 Make这个词,英语的意思是"制作".Make命令直接用了这个意思,就是要做出某个文件.比如,要做出文件a.txt,就可以执行下面的命令. $ m ...

  2. python 选择排序

    选择排序算法的思想,首先第一次先从整个序列中选择最小的数,然后放到第一位,然后再从第二位到最后一位选择出最小的一个数,把这个数放到第二位,然后,再从第三位到最后一位选择其中最小的数放到第三位,这样一直 ...

  3. 页面多次调用查询文章(have_posts())

    通常来说一个页面只调用查询一次文章.have_posts()   如果页面,比如首页需要按照不同的查询参数调用多次文章 需要做如下处理:   //loop前 $temp_query = $wp_que ...

  4. C# 常用分页

    var num = TCalcPager.CalcPageCount(addList.Count, TDefautValue.PageSize); ; i < num; i++) { var r ...

  5. Linux服务器管理: 系统的进程管理后台进程的切换和相关命令

    1.把进程放入到后台: [root@localhost/]#tar -zcf etc.tar.gz /etc &           //这种方法是在后台运行的 [root@localhost ...

  6. 说说移动前端中 viewport (视口)

    转载网络资源的文章:来源不详~~ 移动前端中常说的 viewport (视口)就是浏览器显示页面内容的屏幕区域.其中涉及几个重要概念是 dip ( device-independent pixel 设 ...

  7. xcode的调试技巧

    转自:http://www.cnblogs.com/daiweilai/p/4421340.html#biyouji 目录 前言逼优鸡知己知彼 百战不殆抽刀断Bug 普通操作 全局断点(Global ...

  8. 2013区域赛长沙赛区现场赛 K - Pocket Cube

    K - Pocket Cube Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Su ...

  9. hdu.1104.Remainder(mod && ‘%’ 的区别 && 数论(k*m))

    Remainder Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  10. APPCAN MAS接口之SOAP

    APPCAN MAS接口中使用webservice接口形式,示例代码如下:  1 var MEAP=require("meap");  2   3 function run(Par ...