trang chủ / đề bài / longpath

Con đường dài

Đề bài

Mô tả

Một mê cung gồm n+1 căn phòng đánh số từ 1 đến n+1. Ban đầu một người đứng ở phòng 1 và muốn ra khỏi mê cung bằng cách tới được phòng n+1.

Mỗi phòng i (với 1≤i≤n) có hai cổng dịch chuyển một chiều:

  • Cổng thứ nhất đưa từ phòng i sang phòng i+1.
  • Cổng thứ hai đưa từ phòng i sang phòng pi, trong đó 1≤pi≤i.

Người này di chuyển theo quy tắc sau:

  • Mỗi khi bước vào một phòng, anh ta vẽ thêm một dấu chéo lên trần phòng đó. Ban đầu anh ta vẽ một dấu chéo lên trần phòng 1.
  • Giả sử anh ta đang ở phòng i và vừa vẽ dấu chéo. Nếu trần phòng hiện có một số lẻ dấu chéo thì anh ta dùng cổng thứ hai (tới phòng pi), ngược lại (số chẵn) anh ta dùng cổng thứ nhất (tới phòng i+1).

Hãy xác định số lần anh ta cần sử dụng cổng để tới được phòng n+1.

Dữ liệu vào

  • Dòng thứ nhất chứa số nguyên n.
  • Dòng thứ hai chứa n số nguyên p1,p2,…,pn.

Dữ liệu ra

In ra một số nguyên duy nhất là số lần sử dụng cổng cần thiết. Do đáp số có thể rất lớn, hãy in ra phần dư của nó khi chia cho 109+7.

Ràng buộc

  • 1≤n≤103
  • 1≤pi≤i

Ví dụ

Input Output Giải thích
2
1 2
4 Phòng 1: vẽ dấu (lẻ) tới p1=1. Phòng 1: vẽ dấu (chẵn) tới phòng 2. Phòng 2: vẽ dấu (lẻ) tới p2=2. Phòng 2: vẽ dấu (chẵn) tới phòng 3. Tổng cộng 4 lần.
4
1 1 2 3
20 Cần 20 lần sử dụng cổng để tới phòng 5.
5
1 1 1 1 1
62 Mọi cổng thứ hai đều quay về phòng 1 nên số bước tăng theo cấp số nhân, tổng cộng 62 lần.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0