资深守护
统计数据(data)
题目详情
题目描述 De**ion
一般来说,一组数据的平均值往往不能反映这组数据的整体情况。一组数据往往也会呈现正态分布
我们不需要考虑那么复杂,只需要考虑这组数据的众数和中位数即可。
众数:指的是该组数据中数量最多的那个数
中位数:如果数据的个数是奇数,指的是该组数据中排序后中间的那个数;如果数据的个数是偶数,指的是该组数据中排序后中间的两个数的和的一半。
(比如:1 2 3 4 5 ,中位数是3)
(比如:1 2 3 4 5 6 ,中位数是(3+4)/2 = 3)
现在有n个班级的学生都参加了考试。要对每个班级的众数和中位数进行比较。优先比较众数,众数相同的情况下比较中位数。(如果众数有多个,算成绩最好的为众数)
找出成绩最好的班级,以及对应的众数和中位数。
输入描述 Input De**ion
第一行,2个整数n,m,表示有n个班级,每个班级m个学生。
第二行–第n+1行 每行m个整数
输出描述 Output De**ion
一行,对应成绩最好的班级的编号,以及该班级的众数和中位数
(班级编号按照输入顺序依次为1 2 3 … n)
样例输入 Sample Input
【样例1】 1 3 11 10 48 【样例2】 4 2 49 49 28 7 47 47 39 7
样例输出 Sample Output
【样例1】 1 48 11 【样例2】 1 49 49
数据范围及提示 Data Size & Hint
n<=1000,m<=500,1<=每名同学的分数<=100
不会存在最好的成绩有多个的情况。
程安琪在2023-10-04 17:19:34追加了内容
於海洋,90分;
对了,
题目描述 De**ion
因数世界正在举行因数**拼,每个队伍都由若干数字组成,将每队各个数字的因数个数相加作为本队的战斗力。
比如由1、2、3组成的队伍,各个数字的因数个数分别为 1、2、2,所以该队战斗力为5。
数字a发现自己所在队伍正好有a个不同整数,并且依次为1、2、3、4…a-2、a-1、a。请你计算一下他们队伍的战斗力是多少。
输入描述 Input De**ion
输入一个整数 a
输出描述 Output De**ion
输出答案。
样例输入 Sample Input
3
样例输出 Sample Output
5
数据范围及提示 Data Size & Hint
对于 50% 的数据
a≤10000
对于 100% 的数据
1≤a≤1000000
50分超时;
第4题有思路吗???
程安琪在2023-10-04 17:32:25追加了内容
谁会第2题啊!!!
程安琪在2023-10-04 18:12:44追加了内容
题目描述 De**ion
某迷宫的道路呈网格状,并且迷宫的东西走向是单向,只能从西向东走。而南北走向既可以从北向南走,也可以从南向北走。我们把东西向的路称之为陌路,南北向的路称职为阡路。
这个迷宫每个格子代表阡路和陌路道路的交叉口,每两个交叉口之间的陌路有固定的分数,分数为从-100分到100分的整数,阡路不打分,所有分值不可能全是负分
如表:
输入描述 Input De**ion
共m+1行输入
第一行有两个用空格隔开的整数m,n,m表示有m(1≤m≤100)条陌路,n表示有n+1(1≤n≤20001)条阡路。
接下来的m行依次给出从北向南每条阡路的分值,每行有n个整数,依次表示自西向东的陌路每一段的分值,同一行相邻两个数之间用空格隔开。
输出描述 Output De**ion
输出只有一个整数,表示你的程序找到的走出迷宫的最高分值。
样例输入 Sample Input
3 5 -50 -47 36 -30 -23 17 -19 -34 -13 -8 -42 -3 -43 34 -45
样例输出 Sample Output
84
数据范围及提示 Data Size & Hint
84 由 17 -3 36 34 组成
求思路!!
高级光能
#include<iostream>
#include<algorithm>
using namespace std;
int n;
int m;
struct f{
int s[505];
int zw(){
int b[105]={0};
int maxa=-0x3f3f3f3f;
int pos=0;
for(int i=1;i<=m;i++){
b[s[i]]++;
if(b[s[i]]>=maxa){
if(b[s[i]]==maxa){
pos=max(pos,s[i]);
}else{
pos=s[i];
}
maxa=b[s[i]];
}
}
return pos;
}
double zws(){
sort(s+1,s+m+1);
// for(int i=1;i<=m;i++){
// cout<<s[i]<<' ';
// }
// cout<<endl;
if(m%2==1){
return s[m/2+1];
}else{
return (s[m/2]+s[m/2+1])/2.0;
}
}
int x;
double y;
int id;
}a[1005];
bool cmp(f a,f b){
if(a.x!=b.x){
return a.x>b.x;
}
return a.y>b.y;
}
int main(){
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i].s[j];
}
a[i].x=a[i].zw(),a[i].y=a[i].zws();
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
cout<<a[1].id<<' '<<a[1].x<<' '<<a[1].y;
fclose(stdin);
fclose(stdout);
return 0;
}
样例全过