Marşrutlaşdırma sxemləri#11241

Marşrutlaşdırma sxemləri

1 saniyə
128 meqabayt
Çox çətin

Gəlin zirvədən ibarət bir şəbəkəni nəzərdən keçirək, burada zirvələr ilə işarələnmişdir. Hər bir zirvə ya göndərici, ya alıcı, ya da heç biri kimi təyin olunur. Göndəricilərin sayı alıcıların sayına bərabərdir (S \ge 1).

Şəbəkədəki iki zirvə arasındakı əlaqələr, hər biri i → j şəklində olan istiqamətli kənarların siyahısı ilə təsvir edilir ki, bu da zirvə -nin zirvə -yə məlumat ötürə biləcəyini göstərir. Maraqlıdır ki, bu kənarların hamısı i < j xüsusiyyətini təmin edir, i > j xüsusiyyətini təmin edən kənar istisna olmaqla. Dövr yoxdur (yəni i → i tipli kənarlar yoxdur).

Marşrutlaşdırma sxemi, göndəricilərdən alıcılara qədər olan istiqamətli yolların çoxluğundan ibarətdir ki, bu yollardan heç biri ümumi son nöqtəyə malik deyil. Yəni yollar müxtəlif göndəriciləri müxtəlif alıcılara birləşdirir. Göndərici -dən alıcı -ə qədər olan yol zirvələrin ardıcıllığı kimi təsvir edilə bilər

s = v_0 → v_1 → v_2 → ... → v_e = r

belə ki, v_i → v_{i+1} istiqamətli kənarları bütün 0 \le i < e üçün mövcuddur. Bir zirvə eyni yolda bir neçə dəfə görünə bilər.

Hər bir istiqamətli kənarın yalnız bir dəfə keçildiyi müxtəlif marşrutlaşdırma sxemlərinin sayını hesablayın. Cavab çox böyük ola biləcəyi üçün onu 10^9 + 7 modulu ilə çıxarın. Məhdudiyyətlərə cavab verən ən azı bir marşrutlaşdırma sxeminin mövcudluğu təmin edilir.

Hər bir giriş dəsti testdən ibarətdir. Bütün testlər üçün n^2 cəminin 2 \cdot 10^4-dən çox olmayacağı təmin edilir.

Giriş

Birinci sətir testlərin sayını t~(1 \le t \le 20) ehtiva edir.

Hər bir testin birinci sətiri tam ədədləri n~(2 \le n \le 100) və k~(0 \le k \le 2) ehtiva edir. Qeyd edək ki, girişdə açıq şəkildə müəyyən edilmir.

Hər bir testin ikinci sətiri uzunluğu olan bir sətir ehtiva edir. Sətirin -ci simvolu -ci zirvənin göndərici olduğunu göstərirsə , alıcı olduğunu göstərirsə , heç biri olmadığını göstərirsə olur. və simvollarının sayı bərabərdir. Ən azı bir simvolu var.

Testin hər bir sətiri sıfır və birlərdən ibarət bit sətiri ehtiva edir. -ci sətirdəki -ci bit, zirvə -dən zirvə -yə istiqamətli kənarın mövcud olduğunu göstərirsə , əks halda olur. Döngələr olmadığı üçün əsas diaqonalda bütün sıfırlar var. Bundan əlavə, əsas diaqonalın altında dəqiq ədəd var.

Ardışık testlər oxunaqlılığı artırmaq üçün boş sətirlərlə ayrılmışdır.

Çıxış

Hər bir test üçün hər bir kənarın yalnız bir dəfə keçildiyi marşrutlaşdırma sxemlərinin sayını 10^9 + 7 modulu ilə çıxarın. Məhdudiyyətlərə cavab verən ən azı bir etibarlı marşrutlaşdırma sxeminin mövcudluğu təmin edilir.

Nümunələr

Nümunə 1. Birinci test üçün kənarlar aşağıdakı kimidir:

1 → 3, 2 → 3, 3 → 4, 3 → 5, 4 → 6, 5 → 6, 6 → 7, 6 → 8

Dörd marşrutlaşdırma sxemi mövcuddur:

1 → 3 → 4 → 6 → 7, 2 → 3 → 5 → 6 → 8 \\ 1 → 3 → 5 → 6 → 7, 2 → 3 → 4 → 6 → 8 \\ 1 → 3 → 4 → 6 → 8, 2 → 3 → 5 → 6 → 7 \\ 1 → 3 → 5 → 6 → 8, 2 → 3 → 4 → 6 → 7

İkinci test üçün kənarlar aşağıdakı kimidir:

1 → 4, 2 → 4, 3 → 4, 4 → 5, 4 → 6, 4 → 7, 8 → 10, 9 → 10, 10 → 11, 10 → 12

Mümkün marşrutlaşdırma sxemlərindən biri:

1 → 4 → 5 \\ 2 → 4 → 7 \\ 3 → 4 → 6 \\ 8 → 10 → 12 \\ 9 → 10 → 11

Ümumi halda, göndəricilər \{1, 2, 3\} alıcıların \{5, 6, 7\} bəzi permutasiyasına marşrutlaşdırıla bilər və göndəricilər alıcıların bəzi permutasiyasına marşrutlaşdırıla bilər, bu da 6 \cdot 2 = 12 cavabını verir.

Nümunə 2. Birinci test üçün kənarlar aşağıdakı kimidir:

1 → 3, 1 → 5, 2 → 3, 3 → 1, 3 → 4

Üç marşrutlaşdırma sxemi mövcuddur:

1 → 3 → 1 → 5, 2 → 3 → 4 \\ 1 → 3 → 4, 2 → 3 → 1 → 5 \\ 1 → 5, 2 → 3 → 1 → 3 → 4

İkinci test üçün kənarlar aşağıdakı kimidir:

1 → 3, 2 → 4, 3 → 2, 3 → 6, 4 → 5, 5 → 3

Yalnız bir marşrutlaşdırma sxemi mövcuddur:

1 → 3 → 2 → 4 → 5 → 3 → 6

Nümunə 1

Loading
Loading

Nümunə 2

Loading
Loading

Nümunə 3

Loading
Loading