595 乱七八糟【乱七八糟】

乱七八糟

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 1
描述
一天,PIAOYI查看班级成绩时发现各种乱七八糟的数据,有点晕……但是他现在非常想知道排名情况,你能帮帮他吗?为了让问题简化,只给出n个同学的总成绩,然后需要你对所有同学的总成绩进行排名(从高到低)然后询问m次,每次询问的是总成绩排名是第xi名的同学有多少个?
注意:1)总成绩相等的同学排名是一样的,并列一个名次。
           2)若排名在x同学前面的成绩有并列的,在对x排名时,要加上并列的同学.说的可能有些模糊,没关系,来个例子大家就明白了比如8个同学的成绩依次是:100 90 90 85 80 80 70 60他们的成绩排名依次是 1  2  2  4  5  5  7  8 ,明白了吧,亲.
输入
有多组测试数据,以EOF结束。
每组测试数据包含三行:第一行,输入n(0<=n<=100),m(0<=m<=n),第二行依次输入n个正整数Ai,分别代表n个同学的总成绩,第三行依次输入m个正整数,分别代表查询的名次。
输出
对于每组测试数据,请依次输出m次查询的结果。每个结果占一行。
样例输入
4 4
89 79 60 79
1 2 3 4
8 5
90 90 100 85 80 80 70 60
1 2 3 5 7
样例输出
1
2
0
1
1
2
0
2
1


题不难,倒是挺复杂,只需要全程模拟就可以了......

注意条件的控制,活用数组的下标和各种排序和条件的处理........挺灵活的一道题,虽然并不难.......

具体看代码注释...


 
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct node
{
	int id,val;
}x[105];
int num[105],n,m;
int cmp(node a,node b)
{
	return a.val>b.val;//排序
}
void slove()
{
	int cnt=1;
	for(int i=0;i<n;++i)
	{
		if(!i||x[i].val!=x[i-1].val)//不同分数不同的编号
		{
			x[i].id=cnt;
		}
		else//分数相同的编号相同
		{
			x[i].id=x[i-1].id;
		}
		++cnt;//控制名次不乱
		++num[x[i].id];//统计上每种编号多少人
	}
	for(int i=0;i<m;++i)
	{
		int a;
		scanf("%d",&a);
		printf("%d\n",num[a]);//对应输出就可以了........
	}
}
int main()
{
	while(~scanf("%d%d",&n,&m))
	{
		memset(num,0,sizeof(num));
		for(int i=0;i<n;++i)
		{
			int a;
			scanf("%d",&a);
			x[i].val=a;//记录分数值
		}
		sort(x,x+n,cmp);
		slove();
	}
	return 0;
}        




WPS文字转Word文档格式乱七八糟可能是由于以下几个原因导致的: 1. 版本兼容性问题:WPS和Word是两款不同的办公软件,它们使用的文件格式不完全相同。当你使用WPS文字转换为Word文档时,某些格式可能无法完全转换或被转换成不同的格式,导致文档格式混乱。 2. 复杂格式处理问题:如果原始文档中包含复杂的格式,如表格、图表、插图等,WPS文字转换为Word可能无法完全保留原始格式,并且可能会出现错位、缺失或乱码等问题。 3. 字体兼容性问题:WPS和Word使用的字体库有所不同,如果原始文档中使用了某些特殊字体,在转换过程中可能会导致字体替换或无法显示的问题,进而影响整体文档的格式。 为避免格式混乱,你可以尝试以下方法: 1. 使用相同软件:如果可能的话,建议在同一款软件中完成文档的编辑和转换,例如,在WPS中编辑的文档最好在WPS中进行转换。 2. 简化格式:在进行转换前,尽量避免使用过多的复杂格式和特殊字体,尽量使用常见的字体和格式,以增加转换的成功率。 3. 逐步转换:如果你的文档比较复杂,可以将文档分成多个部分进行转换,以便更好地处理格式问题。 4. 检查转换结果:在转换后,务必仔细检查文档的格式,并进行必要的调整和修复,以确保文档的可读性和准确性。 需要注意的是,由于WPS和Word是两个不同的软件,无法保证在转换过程中完全保留原始文档的格式,因此可能会存在格式混乱的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值