QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100

#352. Strategia przetrwania

Statistics

Nienawidzę słowa „przeznaczenie”. Narodziny, spotkania, rozstania. Sukcesy i porażki, szczęście i nieszczęście w życiu. Jeśli wszystko to jest z góry ustalone przez przeznaczenie, to po co w ogóle żyjemy? Ludzie urodzeni w bogatych rodzinach, ludzie urodzeni przez piękne matki, ludzie urodzeni w czasach głodu i wojny. Jeśli to wszystko jest przeznaczeniem, to Bóg jest zbyt nierozsądny i zbyt okrutny. Od tamtej pory nie mamy przyszłości, ponieważ wiemy, że niczego nie osiągniemy. Mawaru Penguindrum

Dany jest macierz $n\times m$, w której numery wierszy rosną z góry na dół, a numery kolumn rosną z lewej do prawej. Wykonaj na niej $q$ operacji:

  1. Podano $x_1, y_1, x_2, y_2, v$: dodaj $v$ do wszystkich elementów w obszarze $x_1\le x\le x_2, y_1\le y\le y_2$.
  2. Podano $x_1, y_1, l, t$: obróć kwadratowy podobszar o wierzchołku w $(x_1, y_1)$ i boku $l$ (obejmujący $x_1 \le x \le x_1 + l, y_1\le y\le y_1 + l$) o $t\times 90^\circ$ w kierunku przeciwnym do ruchu wskazówek zegara.

W jednym z zestawów danych występuje przypadek $opt=0$, należy go traktować jak $opt=2$.

Wypisz macierz po zakończeniu wszystkich operacji.

Wartości w macierzy są obliczane modulo $2^{32}$, co oznacza, że możesz użyć typu unsigned int do obliczeń.

Wejście

W pierwszej linii podano cztery liczby $n, m, q, \mathrm{lim}$.

W kolejnych $q$ liniach podano operacje, gdzie pierwsza liczba to $opt$ oznaczający typ operacji, a następnie odpowiednie parametry.

Wyjście

Aby zmniejszyć ilość danych wyjściowych, wypisz $\mathrm{lim}$ liczb.

Niech $a[i][j]$ oznacza wartość w $i$-tym wierszu i $j$-tej kolumnie macierzy. Zdefiniujmy:

output[((i - 1) * m + j - 1) % lim] ^= a[i][j] + ((i - 1) * m + j - 1) / lim

Wypisz tablicę output[0], output[1], ... output[lim - 1].

Przykład

Przykład 1 Wejście

4 4 2 16
1 2 2 4 4 1
2 3 1 1 1

Przykład 1 Wyjście

0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1

Uwagi 1

Pierwsza operacja:

0 0 0 0
0 1 1 1
0 1 1 1
0 1 1 1

Druga operacja:

0 0 0 0
0 1 1 1
1 1 1 1
0 0 1 1

Ograniczenia

Dla $100\%$ danych: $1\le n, m, q\le 2,000, \mathrm{lim} = \min(nm, 10^5)$.

Test $n,m$ Właściwości specjalne
$1,2$ $\le100$
$3,4,5,6$ $\le600$
$7,8$ Brak operacji 2
$9$ Wszystkie operacje 1 przed operacjami 2
$10$

Puste pola oznaczają brak dodatkowych ograniczeń.

Uwagi

Jest to zadanie na podstawowe struktury danych.

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.