estadísticas de grupo codeup (C ++)

título Descripción

Para introducir un número, a continuación, introduzca su paquete, el paquete de acuerdo con el número de ocurrencias contó y de salida, ver ejemplos.

entrada

De entrada de la primera fila representa un número de muestra m, para cada muestra, el número n del número de la primera fila, las siguientes dos líneas respectivamente, el número n, el número n de primera línea, segunda línea número n el paquete correspondiente a cada número de fila, n no excede de 100.

exportación

líneas de salida M, ver formato de muestra, en la fila ascendente.

de entrada de muestra  Copia

1 
7 
3 2 3 8 8 2 3 
1 2 3 2 1 3 1

Un ejemplo de salida de copia

1 = {2 = 0,3 = 2,8 = 1} 
2 = {2 = 1,3 = 0,8 = 1} 
3 = {2 = 1,3 = 1,8 = 0}

 Ideas: Usar mapa <int, int> a las estadísticas, antes de sus propias preguntas al complejo (razón también hay serios .. cuenta que no es en el aprendizaje ...). Número es inicializado en el proceso de introducción, se clasificará clas asignados a 0, se han producido se añaden al mapa, y el valor asignado a 0; a continuación, mientras que los paquetes entrantes, mientras que las estadísticas; estadístico buena salida final y clas ! = 0 el elemento de salida.

#include<bits/stdc++.h>
using namespace std;
struct cla{
	int clas;
	map<int,int> num;
};
int main(){
	int m;
	scanf("%d",&m);
	while(m--){
		int n;
		scanf("%d",&n);
		int num[n];
		cla classes[n];   // 分类最多有 n 种 
		for(int i = 0; i < n; i++){
			scanf("%d",&num[i]);
			for(int j = 0; j < n; j++){
				classes[j].clas = 0;
				classes[j].num[num[i]] = 0;   // 初始化 
			}
		}
		map<int,int> c;
		for(int i = 0; i < n; i++){
			int cla; 
			scanf("%d",&cla); 
			classes[cla-1].clas = cla;
			classes[cla-1].num[num[i]]++;
		}
		for(int i = 0; i < n; i++){
			if(classes[i].clas == 0) continue;
			map<int,int> n = classes[i].num;
			printf("%d={",classes[i].clas);
			for(map<int,int>::iterator it = n.begin(); it != n.end(); it++){
				it++;
				if(it != n.end()){
					it--;
					printf("%d=%d,",it->first,it->second);
				}else{
					it--;
					printf("%d=%d}\n",it->first,it->second);
				}
			}
		}
	}
} 

 

Publicado 33 artículos originales · ganado elogios 2 · Vistas 1617

Supongo que te gusta

Origin blog.csdn.net/qq_38969094/article/details/104336045
Recomendado
Clasificación