QOJ.ac

QOJ

Limite de temps : 6 s Limite de mémoire : 1024 MB Points totaux : 100 Difficulté: [afficher] Hackable ✓

#13080. Преобразование последовательности

Statistiques

Даны две целочисленные последовательности длины $n$: $B=[b_1,\ldots,b_n]$ и $C=[c_1,\ldots,c_n]$. Для последовательности неотрицательных целых чисел $D=[d_1,\ldots,d_n]$ длины $n$ обозначим через $S(D)$ множество всех индексов $i$, для которых $d_i=0$, и определим $f(D)=\sum_{i\in S(D)}b_i$, $g(D)=\prod_{i\in S(D)}c_i$. В частности, если $S(D)$ пусто, то $f(D)=0$, $g(D)=1$.

У 小L есть последовательность положительных целых чисел $A=[a_1,\ldots,a_n]$ длины $n$. 小L может изменять её следующим образом:

  • Выбрать два соседних индекса $i,j$ последовательности $A$ (то есть $1\le i,j\le n$ и $|i-j|=1$). Если $a_i\le a_j$, заменить $a_j$ на $a_j-a_i$, одновременно заменив $a_i$ на $0$.

小L может выполнить произвольное число операций, в том числе ни одной. Среди всех последовательностей $D$, которые можно получить из $A$ этими операциями, 小L хочет найти максимальное значение $f(D)$ и сумму $g(D)$. Помогите ему вычислить эти два значения. Формально, пусть $T(A)$ — множество всех последовательностей, которые можно получить из $A$ указанными операциями. Требуется вычислить $\max_{D\in T(A)}f(D)$ и $\sum_{D\in T(A)}g(D)$. Поскольку $\sum_{D\in T(A)}g(D)$ может быть большой, достаточно найти её остаток по модулю $1{,}000{,}000{,}007$.

Входные данные

Данные считываются из файла sequence.in.

В задаче несколько наборов входных данных.

Первая строка содержит два неотрицательных целых числа $c,t$ — номер теста и количество наборов данных. Значение $c=0$ означает, что этот тест является примером.

Далее последовательно задаются наборы данных. Для каждого набора:

Первая строка содержит положительное целое число $n$ — длину последовательности.

Вторая строка содержит $n$ положительных целых чисел $a_1,\ldots,a_n$ — последовательность $A$.

Третья строка содержит $n$ целых чисел $b_1,\ldots,b_n$ — последовательность $B$.

Четвёртая строка содержит $n$ положительных целых чисел $c_1,\ldots,c_n$ — последовательность $C$.

Выходные данные

Вывод производится в файл sequence.out.

Для каждого набора данных выведите одну строку с двумя целыми числами: $\max_{D\in T(A)}f(D)$ и остаток $\sum_{D\in T(A)}g(D)$ по модулю $1{,}000{,}000{,}007$. Обратите внимание: для $\max_{D\in T(A)}f(D)$ остаток по модулю $1{,}000{,}000{,}007$ брать не нужно.

Задача состоит из двух вопросов. Правильный ответ на любой из них позволяет получить частичные баллы. Подробные правила приведены в разделе «Подзадачи».

Примеры

Входные данные 1

0 3
3
5 6 6
3 6 9
1 2 3
6
1 1 4 5 1 4
-1 1 -1 1 -2 2
1 1 1 1 1 1
8
4 2 4 2 2 2 4 4
-2 4 9 -3 4 8 7 8
1 1 1 1 1 1 1 1

Выходные данные 1

15 10
1 18
37 48

Примечание

Этот пример содержит три набора данных.

Для первого набора можно получить следующие четыре последовательности:

  • $D=[5,6,6]$, $f(D)=0$, $g(D)=1$;
  • $D=[0,1,6]$, $f(D)=3$, $g(D)=1$;
  • $D=[5,0,0]$, $f(D)=6+9=15$, $g(D)=2\times3=6$;
  • $D=[0,0,5]$, $f(D)=3+6=9$, $g(D)=1\times2=2$.

Поэтому $\max_{D\in T(A)}f(D)=\max\{0,3,15,9\}=15$, а $\sum_{D\in T(A)}g(D)=1+1+6+2=10$.

Пример 2

См. файлы sequence/sequence2.in и sequence/sequence2.ans в каталоге участника.

Этот пример удовлетворяет ограничениям тестов $3,4$.

Пример 3

См. файлы sequence/sequence3.in и sequence/sequence3.ans в каталоге участника.

Этот пример удовлетворяет ограничениям тестов $5,6$.

Пример 4

См. файлы sequence/sequence4.in и sequence/sequence4.ans в каталоге участника.

Этот пример удовлетворяет ограничениям теста $7$.

Пример 5

См. файлы sequence/sequence5.in и sequence/sequence5.ans в каталоге участника.

Этот пример удовлетворяет ограничениям тестов $11,12$.

Пример 6

См. файлы sequence/sequence6.in и sequence/sequence6.ans в каталоге участника.

Этот пример удовлетворяет ограничениям тестов $16\sim18$.

Ограничения

Пусть $N$ — сумма значений $n$ по всем наборам данных одного теста. Для всех наборов гарантируется:

  • $1\le t\le20$;
  • $1\le n\le5000$, $N\le4\times10^4$;
  • для всех $1\le i\le n$ выполняется $1\le A_i\le10^9$;
  • для всех $1\le i\le n$ выполняется $-10^9\le B_i\le10^9$;
  • для всех $1\le i\le n$ выполняется $1\le C_i\le10^9$.
Номера тестов $n\le$ $N\le$ Особое свойство
$1,2$ $8$ $10^2$ Нет
$3,4$ $200$ $400$ B
$5,6$ Нет
$7$ $500$ $10^3$ A
$8\sim10$ B
$11,12$ Нет
$13$ $3500$ $3\times10^4$ A
$14,15$ B
$16\sim18$ Нет
$19,20$ $5000$ $4\times10^4$

Особое свойство A: гарантируется $A_1=A_2=\cdots=A_n=1$.

Особое свойство B: гарантируется, что для всех $1\le i\le n$ значение $A_i$ независимо и равномерно случайно выбирается из $[1,10^9]$.

Подзадачи

Для каждого теста:

  • Правильные ответы $\max_{D\in T(A)}f(D)$ для всех наборов данных дают $40\%$ баллов за тест.
  • Правильные ответы $\sum_{D\in T(A)}g(D)$ по модулю $1{,}000{,}000{,}007$ для всех наборов данных дают $60\%$ баллов за тест.

Внимание: даже если вы отвечаете только на один из вопросов, всё равно необходимо вывести два целых числа в соответствии с форматом вывода, соответствующие ответам на оба вопроса.

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download
#2598EditorialOpen$O(N + \log P)$ 题解 by ChatGPTAnonymousView

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.