РАТ Оценка --A1149DangerousGoodsPackaging [25]

При перевозке грузов в контейнерах, мы должны быть осторожны, чтобы не упаковать некоторые несовместимые товары в том же контейнере, или мы могли бы получить себе серьезные неприятности. Например, окислитель (氧化剂) не должны быть упакованы с горючей жидкостью (易燃 液体), или это может привести к взрыву.

Теперь вы получаете длинный список несовместимых товаров, а также несколько списков товаров к отгрузке. Вы должны сказать, если все товары в списке могут быть упакованы в том же контейнере.

Входные характеристики:

Каждый входной файл содержит один тест. Для каждого случая, первая линия дает два положительных целых числа:  N ( ≤), количество пар несовместимых товаров и  M ( ≤), количество списков товаров к отгрузке.

Затем два блока следует. Первый блок содержит N пар несовместимых товаров, каждая пара занимает линию; а второй содержит один M списков товаров, которые будут отправлены, каждый список занимает строку в следующем формате:

K G[1] G[2] ... G[K]

где  K ( ≤) это количество товаров и  G[i]х годов являются идентификаторы товаров. Чтобы сделать это просто, каждый хорошо представлен 5-значный идентификационный номер. Все числа в строке разделены пробелами.

Выходные характеристики:

Для каждого списка доставки, печати в строке  , Yes если нет несовместимых товаров в списке, или  No если нет.

Пример ввода:

6 3
20001 20002
20003 20004
20005 20006
20003 20001
20005 20004
20004 20006
4 00001 20004 00002 20003
5 98823 20002 20003 20006 10010
3 12345 67890 23333

Пример вывода:

No
Yes
Yes


Soulution:

   Прямая сумма выглядеть то же самое решение спаренные темы:

    Кто вам сказал, две пары, а затем указать число столбцов, а затем определить, есть ли что-нибудь спаривание! !

    Если небольшое количество ступеней, матрица непосредственно, v [а] [б] является правом, то итерация число столбцов, одна пара взгляда существует или нет

    Обычно порядка больше

    Использование unordered_map <Int, вектор <Int >> карту хранения каждого номера супруга

    Затем маркировки первой серии чисел, которые проходят цифровое присутствие Его Int [10000] = {FALSE}; V [XXX] = TRUE;

    А затем итерация по числу столбцов для каждого счета, чтобы определить все его супруга не число столбцов, а именно, v [х] == верно?

   

1 #include <iostream>
 2 #include <вектор>
 3 # include <unordered_map>
 4 с  использованием  пространства имен STD;
5  INT основных ()
 6  {
 7      INT п, т, к, а, б;
8      CIN >> п >> м;
9      unordered_map < ИНТ , вектор < INT >> thePair;
10      для ( Int I = 0 ; я <п; ++ я)
 11      {
 12          CIN >> A >> б;
13          thePair [а] .push_back (б);
14          thePair [Ь] .push_back (а);
15      }
 16 в      то время (m-- )
 17      {
 18          CIN >> к;
19          вектор < INT > Темп (к);
20          unordered_map < INT , BOOL > НУМС;
21          BOOL флаг = верно ;
22          для ( Int I = 0 ; я <к; ++ я)
 23          {
 24              CIN >> Темп [I];
25             НУМС [Темп [я]] = верно ;
26          }
 27          для ( Int I = 0 ; я <к && флаг; ++ я)
 28              для (авто: с thePair [температуры [I]])
 29 ,                  если (НУМС [а] == истинные )
 30                      флаг = ложь ;
31          соиЬ << (? Флаг " Да " : " Нет " ) << епсИ;
32      }
 33      возврата  0 ;
34 }

 

 

 

 

рекомендация

отwww.cnblogs.com/zzw1024/p/11920546.html