PAT B 1065 solo perro /// /// atención ajustar el formato de salida para su uso

Solo perros "es el término chino de cariño para una sola persona esta pregunta a encontrar los clientes de la gran fiesta única de miles de personas con el fin de dar un cuidado especial.
Formatos de entrada:
entrada dada de la primera línea de un entero positivo N (≤ 50 000), es el número de conocido par / pareja, y luego N filas, cada fila se da un par / pareja - por conveniencia, cada número corresponde a un ID, de 5 dígitos (de 00.000 a 99999), separadas por un espacio entre ID; dado después de un número entero positivo de M (≤ 10 000), el número total de personas en la fiesta; entonces la línea M ofrece a los clientes la ID, separadas por un espacio hay garantía de título o bigamia. barcos pie.

Formato de salida:
En primer lugar, la línea de salida única de un primer número total de huéspedes; seguido de un segundo ID de línea se incrementa en el orden indicado en los huéspedes individuales. Con un espacio entre el ID de la partición, y la fila última puede no tener espacio extra.

de entrada de la muestra:
. 3
11.111 22.222
33.333 44.444
55.555 66.666
7.
55555 444,441,000,088,888 222,221,111,123,333

Muestra de la salida:
. 5
10 000 23 333 444,445,555,588,888

Las ideas: en primer lugar con el índice marido tabla hash ponen su esposa, que puso su subíndice marido. Debido a las preguntas planteadas responderá de salida en orden, así que voy a ser el partido estaban listos en un recipiente, a continuación, conjunto combinado de la tabla de funciones de hash hallazgo y, si no es emparejar la pareja en el conjunto, se colocan en el vector. salida final

Tenga en cuenta que un pozo: número de identificación es de 00000 a 99999. A 0 antes del número entre 00000 a 10000 de salida debe ser, de lo contrario los puntos penúltima prueba no pueden pasar, por lo que aquí utilizar printf a la salida.

#include <iostream>
#include <set>
#include <cstdio>
#include <vector>
using namespace std;
int main()
{
	int hash[99999] = {0};
	int pair = 0;
	cin >> pair;
	for (int i = 0; i < pair; i++)
	{
		int hus, wif;
		cin >> hus >> wif;
		hash[hus] = wif;
		hash[wif] = hus;
	}
	set<int> st;
	int num;
	cin >> num;
	for (int i = 0; i < num; i++)
	{
		int n;
		cin >> n;
		st.insert(n);
	}
	vector<int> vec;
	for (set<int>::iterator it = st.begin(); it != st.end(); it++)
		if (st.find(hash[*it]) == st.end()) //find()函数如果没找到,则返回end()所在迭代器
			vec.push_back(*it);
	printf("%d\n", vec.size());
	for (int i = 0; i < vec.size(); i++)
	{
		if (i != 0) printf(" ");
		printf("%05d", vec[i]);  //注意使用printf
	}
	return 0;
}

Resumen: El primero en llegar a sus propias razones para no pasar el punto de prueba, un poco excitado!

Publicados 101 artículos originales · ganado elogios 1 · vistas 1952

Supongo que te gusta

Origin blog.csdn.net/weixin_43318827/article/details/105385344
Recomendado
Clasificación