QOJ.ac

QOJ

時間限制: 4 s 記憶體限制: 1024 MB 總分: 100

#23913. Торговельний план (Trade Plan)

统计

Умова задачі

У Сполучених Штатах JOI є $N$ міст, пронумерованих від $1$ до $N$, та $M$ доріг, пронумерованих від $1$ до $M$. Дорога $i$ ($1 \le i \le M$) з'єднує місто $U_i$ та місто $V_i$ в обох напрямках.

Сполучені Штати JOI складаються з $K$ штатів, пронумерованих від $1$ до $K$. Місто $j$ ($1 \le j \le N$) належить штату $S_j$. Крім того, у кожному штаті є принаймні $1$ місто.

Директор K, міністр промисловості Сполучених Штатів JOI, планує провести $Q$ торговельних операцій. $k$-та торговельна операція ($1 \le k \le Q$) полягає у перевезенні фірмових товарів із міста $A_k$ до міста $B_k$ через деякі дороги та міста. Проте в цій операції співпрацюють лише штат $S_{A_k}$ і штат $S_{B_k}$ (або лише штат $S_{A_k}$, якщо $S_{A_k} = S_{B_k}$), і якщо маршрут проходить через будь-яке місто, що не належить цим штатам, фірмові товари буде вкрадено.

Директор K хоче з'ясувати, чи існує маршрут перевезення, який дозволяє провести торгівлю без крадіжки фірмових товарів. За заданим розташуванням міст і доріг, а також інформацією про штати та торговельні операції, напишіть програму, яка для кожної операції визначить, чи можна безпечно доставити фірмові товари.

Обмеження

  • $2 \le N \le 400\,000$.
  • $1 \le M \le 400\,000$.
  • $1 \le K \le N$.
  • $1 \le U_i < V_i \le N$ ($1 \le i \le M$).
  • $(U_i, V_i) \neq (U_j, V_j)$ ($1 \le i < j \le M$).
  • $1 \le S_j \le K$ ($1 \le j \le N$).
  • Для кожного $l$ ($1 \le l \le K$) існує $j$ ($1 \le j \le N$), такий що $S_j = l$.
  • $1 \le Q \le 400\,000$.
  • $1 \le A_k \le N$ ($1 \le k \le Q$).
  • $1 \le B_k \le N$ ($1 \le k \le Q$).
  • $A_k \neq B_k$ ($1 \le k \le Q$).
  • Усі вхідні значення є цілими числами.

Підзадачі

  1. ($5$ балів) $N \le 1\,000$, $M \le 1\,000$, $Q \le 1\,000$.
  2. ($11$ балів) Між будь-якими містами, що належать штату $l$ ($1 \le l \le K$), можна переміщуватися, проходячи лише дорогами та містами, що належать штату $l$.
  3. ($42$ бали) $N \le 80\,000$, $M \le 80\,000$, $Q \le 80\,000$.
  4. ($42$ бали) Додаткових обмежень немає.

Вхідні дані

Вхідні дані подаються зі стандартного потоку вводу в такому форматі:

N M K
U_1 V_1
U_2 V_2
:
U_M V_M
S_1 S_2 ... S_N
Q
A_1 B_1
A_2 B_2
:
A_Q B_Q

Вихідні дані

У стандартний потік виводу виведіть $Q$ рядків. У $k$-му рядку ($1 \le k \le Q$) виведіть 1, якщо в $k$-й торговельній операції можливо доставити фірмові товари, і 0, якщо це неможливо.

Приклад 1

4 3 2
1 2
2 3
3 4
1 2 1 2
3
1 2
1 3
1 4
1
0
1
  • $1$-ша торговельна операція полягає у перевезенні фірмових товарів із міста $1$ до міста $2$ лише через міста, що належать штату $1$ або штату $2$. Перевезення за маршрутом місто $1$ → місто $2$ задовольняє умову, тому виводиться 1.
  • $2$-га торговельна операція полягає у перевезенні фірмових товарів із міста $1$ до міста $3$ лише через міста, що належать штату $1$. Оскільки маршруту перевезення, що задовольняє умову, не існує, виводиться 0.
  • $3$-тя торговельна операція полягає у перевезенні фірмових товарів із міста $1$ до міста $4$ лише через міста, що належать штату $1$ або штату $2$. Перевезення за маршрутом місто $1$ → місто $2$ → місто $3$ → місто $4$ задовольняє умову, тому виводиться 1.

Цей приклад вхідних даних задовольняє обмеження підзадач $1, 3, 4$.

Приклад 2

4 2 1
1 3
2 4
1 1 1 1
4
1 2
1 3
2 3
2 4
0
1
0
1

Цей приклад вхідних даних задовольняє обмеження підзадач $1, 3, 4$.

Приклад 3

6 5 3
1 2
3 4
5 6
1 4
3 5
1 1 2 2 3 3
4
1 4
1 5
3 6
4 3
1
0
1
1

Цей приклад вхідних даних задовольняє обмеження всіх підзадач.

Приклад 4

8 11 3
4 8
1 8
4 6
3 5
2 4
7 8
6 7
3 4
1 4
2 3
3 8
2 3 1 1 2 1 2 1
10
8 2
8 1
2 7
5 3
5 7
4 8
1 8
6 8
6 5
1 8
1
1
0
1
0
1
1
1
1
1

Цей приклад вхідних даних задовольняє обмеження підзадач $1, 3, 4$.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.