http://acm.nyist.net/JudgeOnline/problem.php?pid=240

小明的调查统计(二)

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
 
描述
最近小明他们社团对理工全校每个班级进行了一次社会调查,他们对每同学的数学成绩进行了统计。小明的任务是老师想知道全校成绩排在第n名同学的班级号和班级学号(如果成绩相同就并列排在同一名次),现在你需要编一个程序帮助小明来完成这个任务。
 
输入
只有一组测试数据
第一行输入正整数T(0<T<=500)和M(0<M<=101),表示学校的班级数和老师需要查询的次数
随后有T行数据,第i行表示班级号为i的班级,每行第一个数N(0<N<=200)表示这个班级有N个同学。接下来输入N个正整数,第j个正整数表示班级学号为j同学的数学成绩(0=<数学成绩<=100,班级号和班级学号都是从1开始)。
随后的M行数据,每行数据有一个正整数Q,表示查询全校数学成绩排名第Q位的所有同学的班级号和班级学号。
输出
每次查询输出占一行,输出成绩排在第Q位同学的班级号和学号(如果有多同学成绩并列排在在第Q名,那么按班级号从小到大输出,如果班级号相同那么按班级学号从小到大输出)
样例输入
3 4
10 23 56 89 41 23 54 65 23 89 68
3 89 78 85
5 56 68 76 56 74
1
2
3
4
样例输出
1 3
1 9
2 1
2 3
2 2
3 3 分析:
结构体排序即可。

AC代码:

直接排序:
 #include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int T,M,N;
int i,j,k,max=;
int b[]={},a[][]={};
int num=;
scanf("%d %d",&T,&M);
for(i=;i<T;i++)
{
scanf("%d",&N);
if(max<N) max=N;
for(j=;j<N;j++)
{
scanf("%d",&a[i][j]);
int t=;
for(k=;k<num;k++)
if(a[i][j]==b[k]) t=;
if(t==)
{b[num]=a[i][j];num++;}
}
}
sort(b,b+num);
while(M--)
{
int n;
scanf("%d",&n);
for(i=;i<T;i++)
for(j=;j<max;j++)
if(a[i][j]==b[num-n])
printf("%d %d\n",i+,j+);
}
return ;
}

结构体排序:

 #include <iostream>
#include <algorithm>
using namespace std; struct data//data保存输入数据用
{
int number;//人数
int *p;//学生成绩
}; struct one
{
int c;//班级
int zb;//学号
int z;//成绩
int w;//名次
}; //自定义sort排序,先按分数从大到小,再按班级从小到大,再按学号从小到大
bool cmp(one a,one b)
{
if(a.z!=b.z)return a.z>b.z;
if(a.c!=b.c)return a.c<b.c;
return a.zb<b.zb;
}
int main()
{
data *s;
one x[];
int t,m,i,j,k=;
cin>>t>>m;
s=new data[t];
for(i=; i<t; i++) //输入数据
{
cin>>s[i].number;
s[i].p=new int[s[i].number];
for(j=; j<s[i].number; j++)
{
cin>>s[i].p[j];
x[k].zb=j+;
x[k].z=s[i].p[j];
x[k].c=i+;
k++;
}
}
sort(x,x+k,cmp);
int count=,h=x[].z,temp;
for(i=; i<k; i++) //循环,排序分数名次
{
if(x[i].z!=h)
{
h=x[i].z;
count++;
}
x[i].w=count;
}
while(m--)
{
cin>>temp;
for(i=; i<k; i++)
{
if(temp==x[i].w) cout<<x[i].c<<" "<<x[i].zb<<endl;
if(x[i].w>temp) break;
}
}
return ;
}

nyist 240 小明的调查统计(二)的更多相关文章

  1. nyist 676 小明的求助

    http://acm.nyist.net/JudgeOnline/problem.php?pid=676 小明的求助 时间限制:2000 ms  |  内存限制:65535 KB 难度:2   描述 ...

  2. nyist 604 小明的难题

    http://acm.nyist.net/JudgeOnline/problem.php?pid=604 小明的难题 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 ...

  3. HDU 3791 二叉搜索树 (数据结构与算法实验题 10.2 小明) BST

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3791 中文题不说题意. 建立完二叉搜索树后进行前序遍历或者后序遍历判断是否一样就可以了. 跟这次的作业第 ...

  4. 抓起根本(二)(hdu 4554 叛逆的小明 hdu 1002 A + B Problem II,数字的转化(反转),大数的加法......)

    数字的反转: 就是将数字倒着存下来而已.(*^__^*) 嘻嘻…… 大致思路:将数字一位一位取出来,存在一个数组里面,然后再将其变成数字,输出. 详见代码. while (a) //将每位数字取出来, ...

  5. nyist oj 19 擅长排列的小明(dfs搜索+STL)

    擅长排列的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 小明十分聪明.并且十分擅长排列计算.比方给小明一个数字5,他能立马给出1-5按字典序的全排列,假设你想 ...

  6. 管闲事的小明-nyoj51

    描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,……,L,都种有一棵 ...

  7. NYOJ 51-管闲事的小明

    点击打开链接 管闲事的小明 时间限制:4000 ms  |  内存限制:65535 KB 难度:2 描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数 ...

  8. scauoj 18025 小明的密码 数位DP

    18025 小明的密码 时间限制:4000MS  内存限制:65535K提交次数:0 通过次数:0 题型: 编程题   语言: G++;GCC Description 小明的密码由N(1<=N& ...

  9. 微信小程序接入百度统计

    一. 百度统计添加应用,获取appkey和微信小程序统计sdk: 1. 百度统计首页,点击“我的全部应用”右侧的添加按钮: 2. “应用类型”选择小程序统计,选择微信小程序,填写应用名称信息,选择内容 ...

随机推荐

  1. 【转】android UI进阶之自定义组合控件

    [源地址]http://blog.csdn.net/notice520/article/details/6667827 好久没写博客了.实在是忙不过来,不过再不总结总结真的不行了.慢慢来吧,有好多需要 ...

  2. php 通过exec 创建git分支失败

    今天给我们自己的发布系统增加一个新建分支的功能,操作比较简单,但是使用php执行shell命令的时候总是无法push分支到远程,但是登陆服务器执行却是可以的 新建分支命令如下 git fetch -- ...

  3. 异常处理与MiniDump详解(4) MiniDump

    http://blog.csdn.net/vagrxie/article/details/4398721 异常处理与MiniDump详解(4) MiniDump 分类:             [Wi ...

  4. Cloudera Hadoop什么是CDH及CDH版本介绍

    本文引用自:Cloudera Hadoop什么是CDH及CDH版本介绍http://www.aboutyun.com/thread-6788-1-1.html(出处: about云开发) 云技术新兴的 ...

  5. 关于HBase的概述

    1.hbase的特点 ->数据存储量可以达到亿级别数据维持在秒级 ->按列存储的数据库 ->能够存储上百万列 ->hbase的底层存储依赖于HDFS ->如何扩展hbas ...

  6. 大数据情况下linux的配置

    一:配置的大纲 主要的配置有几个方面: 主机名 IP 网络映射 增加新用户 给新用户root的权限,方便实验 关闭防火墙 安全子系统需要关闭 二:主机名的配置 命令:vi /etc/sysconfig ...

  7. JS中数组对象去重

    JS数组去重 JS中对数组去重最好不要用unique方法,该方法主要是对dom节点数组的去重,如果对普通的数组元素去重只会去掉与之相邻的重复元素,也就是如果数组中还有不相邻的重复元素存在,将不会被去掉 ...

  8. 国家发改委发布的数据,前三季度我国生产的手机、PC、集成电路、宽带上网的数量

    集微网消息,根据国家发改委发布的数据,前三季度,我国生产集成电路944亿块,同比增长18.2%. 此外,前三季度,生产手机15亿部,同比增长17.6%,其中智能手机11亿部,增长12.1%,占全部手机 ...

  9. SQL backup&restore

    --完整备份Backup Database NorthwindCSTo disk='G:\Backup\NorthwindCS_Full_20070908.bak' --差异备份Backup Data ...

  10. (转帖) java内存分配分析/栈内存、堆内存

    http://blog.csdn.net/qh_java/article/details/9084091