Louco de bate-papo por telefone (25 pontos) (método de mapa, hashing não)

Dados os registros de chamadas de um grande número de usuários de telefones celulares, encontre o louco do bate-papo com mais ligações.

Formato de entrada: A
entrada primeiro fornece um número inteiro positivo N (≤10 5), que é o número de registros de chamadas. Próximas N linhas, cada linha fornece um registro de chamada. Para simplificar, apenas os números de telefone celular de 11 dígitos da parte chamadora e da parte receptora são listados aqui, separados por espaços.

Formato de saída:
Informe o número do telefone do chateador e a quantidade de ligações em uma linha, separados por espaços. Se tal pessoa não for única, o menor número entre os loucos e o número de chamadas são produzidos, e o número de loucos paralelos é fornecido adicionalmente.

Amostra de entrada:

4
13005711862 13588625832
13505711862 13088625832
13588625832 18087925832
15005713862 13588625832

Saída de amostra:

13588625832 3

Não aprendi o hashing, discuti o mapa sem cérebro, enviei-o várias vezes e mantive 12 pontos (um total de três pontos de teste, apenas um passou) e depois descobri que o significado da pergunta estava errado. Você precisa encontrar o valor máximo antes de ver se há empate. . Se houver empate, está tudo bem se você encontrar, você tem que contar quantos são iguais, incluindo ele mesmo
#include <iostream> 
#include <map> 
#include <algorithm>
using namespace std;

int main(){
    
    
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	map<string,int> m;
	int n;
	cin >> n;
	string s1,s2;
	for(int i = 0;i<n;i++){
    
    
		cin >> s1 >> s2;
		m[s1]++;
		m[s2]++;
	}
	int maxn = 0;
    int cnt = 0;
    string res;
	for(auto it = m.begin();it!=m.end();it++){
    
    
		if(it->second>maxn){
    
    
			maxn = it->second;
			res = it->first;
		}
	}
    for(auto it = m.begin();it!=m.end();it++){
    
    
		if(it->second==maxn){
    
    
			cnt++;
		}
	}
    if(cnt==1)
	    cout << res << " " << maxn;
    else
        cout << res << " " << maxn << " " << cnt;
	return 0;
}

Acho que você gosta

Origin blog.csdn.net/weixin_45845039/article/details/108772442
Recomendado
Clasificación