QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 1024 MB Total points: 100 Difficulty: [show] Hackable ✓

#4658. 移除石仔

Statistics

你正喺度玩一個叫「移除石子」嘅小遊戲。

有 $n$ 堆石仔排成一行,第 $i$ 堆有 $a_i$ 粒。你嘅任務係用以下操作,移走所有石仔:

  • 操作一:揀一堆石仔,移走當中至少 2 粒;
  • 操作二:揀一個連續編號區間 $[l,r]$($1\leq l\leq r\leq n$),而且滿足 $r-l\geq 2$,將區間內每堆石仔都恰好移走 1 粒。

你可以按任何順序,執行以上兩種操作任意多次,直到再冇操作可以執行。如果最後移走晒所有石仔,你就贏。

你可能已經開始計算「有幾多種本質上唔同嘅操作方式」之類嘅問題,但實際玩嗰陣,卻發現自己成日輸。所以你打算出個小花招:遊戲開始嗰陣,你手上偷偷藏住 $k$ 粒石仔,喺執行所有操作之前,你可以而且必須將呢啲石仔放入某一堆或某幾堆石仔入面。你希望咁樣可以提高勝算,但亦知道,咁可能令你輸咗原本可以贏嘅遊戲。

而家,你可以自由揀一個初始局面玩遊戲。具體嚟講,每個 $a_i$ 可以揀 $[l_i,r_i]$ 範圍內任何整數。你想計算有幾多種初始局面,令你至少有一種贏嘅方案。因為答案好大,只需要輸出答案對 $10^9+7$ 取模嘅結果。兩個初始局面唔同,當且僅當至少有一個 $1\leq i\leq n$,令兩者嘅 $a_i$ 唔相等。留意,呢度嘅「初始局面」指放入 $k$ 粒石仔之前嘅局面。

輸入格式

由檔案 stone.in 讀入數據。

本題有多組測試數據。第一行有一個正整數 $T$,表示測試數據組數,之後依次畀出每組測試數據。

對於每組測試數據,第一行有兩個整數 $n,k$,分別表示石仔堆數同加入嘅石仔數目。之後 $n$ 行,每行兩個非負整數 $l_i,r_i$,表示每堆石仔初始數目嘅範圍。

輸出格式

輸出到檔案 stone.out。

對於每組數據,輸出一行,有一個整數,表示可能贏嘅局面數對 $10^9+7$ 取模嘅結果。

樣例

輸入格式 1

1
4 1
0 1
0 1
0 1
0 1

輸出格式 1

14

說明 1

總共有 $2^4=16$ 種可能嘅初始局面。可以證明,除咗 $(0\ 0\ 0\ 0)$ 同 $(1\ 0\ 0\ 1)$ 呢兩種初始局面冇辦法贏之外,其餘初始局面都有贏嘅方案。例如初始局面係 $(1\ 0\ 1\ 0)$,你可以將手上嗰 1 粒石仔放入第 2 堆,令局面變成 $(1\ 1\ 1\ 0)$,再對區間 $[1,3]$ 用一次操作二就得。

樣例 2

見選手目錄入面嘅 stone/stone2.in 同 stone/stone2.ans。

樣例 3

見選手目錄入面嘅 stone/stone3.in 同 stone/stone3.ans。

樣例 4

見選手目錄入面嘅 stone/stone4.in 同 stone/stone4.ans。

數據範圍

對於 $100\%$ 嘅數據,保證 $T\leq 10$,$3\leq n\leq 1000$,$0\leq l_i\leq r_i\leq 10^9$,$0\leq k\leq 100$。

測試點編號 $n\leq$ $k\leq$ 特別條件
$1\sim 3$ $5$ $2$ $r_i\leq 5$
$4\sim 5$ $1000$ $0$ $l_i=r_i$
$6\sim 8$ $100$
$9\sim 11$ $0$ 無
$12\sim 13$ $2$
$14\sim 15$ $100$ $r_i\leq 10$
$16\sim 20$ 無

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1306EditorialOpenkawaii rainstopqwqGotoHiotoriView

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.