Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

root

H GRAPH

100 điểm

Huy là một học sinh có nhiều hứng thú về đồ thị. Trong quá trình nghiên cứu về chủ đề này, Huy đã nghĩ ra một dạng đồ thị dựa trên tên anh ấy, gọi là đồ thị H. Một đồ thị H là một đồ thị vô hướng gồm \(6\) đỉnh phân biệt được kí hiệu lần lượt là \(A, B, C, D, E, F\) và \(5\) cạnh:

  • \(C\) có cạnh nối với \(A, B\);

  • \(D\) có cạnh nối với \(E, F\);

  • \(C\) và \(D\) có cạnh nối với nhau.

\begincenter

\endcenter.

Là một người cùng nghiên cứu đồ thị với Huy, bạn được Huy cho một đồ thị \(G\) vô hướng gồm \(n\) đỉnh và \(m\) cạnh sao cho mỗi cạnh nối hai đỉnh khác nhau và giữa hai đỉnh bất kỳ có tối đa một cạnh nối giữa chúng. Nhiệm vụ của bạn là giúp Huy đếm xem có bao nhiêu đồ thị con khác nhau của \(G\) thỏa mãn điều kiện của một đồ thị \(H\).

Biết rằng:

  • Đồ thị con của đồ thị \(G=(V,E)\) là đồ thị \(H=(W,F)\), sao cho \(W \subseteq V\) và \(F\subseteq E\).

  • Hai đồ thị con được gọi là khác nhau khi tồn tại cạnh xuất hiện trong đồ thị này nhưng không xuất hiện trong đồ thị còn lại.

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(m\) \(\left(1 \leq n \le 10^5, 0 \leq m \le \min\left(\frac{n \times (n-1)}{2}, 4 \times 10^5\right)\right)\) lần lượt là số đỉnh và số cạnh của đồ thị.

  • Trong \(m\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u\) và \(v\) \((1 \le u \neq v \le n)\) cho biết có một cạnh nối giữa hai đỉnh \(u\) và \(v\).

Output

  • Một số nguyên duy nhất là số lượng đồ thị con của \(G\) là đồ thị H sau khi chia lấy dư cho \(10^9+7\).

Example

Test 1

Input
6 7
1 2
2 3
3 4
4 5
5 6
6 1
6 3
Output
1

Test 2

Input
6 9
1 2
2 3
3 4
4 5
5 6
6 1
6 3
3 5
2 4
Output
2

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(n \leq 20\).

  • Subtask \(2\) (\(20\%\) số điểm): \(m = n - 1\) và giữa hai đỉnh bất kỳ đều tồn tại đường đi giữa chúng.

  • Subtask \(3\) (\(20\%\) số điểm): \(n, m \leq 5000\).

  • Subtask \(4\) (\(20\%\) số điểm): \(n \leq 10^{4}\).

  • Subtask \(5\) (\(20\%\) số điểm): Không có ràng buộc gì thêm.

root

Chỉnh hợp lặp

100 điểm

Trong một tiệm bánh, có \(N\) loại bánh khác nhau. Uolevi muốn chọn ra \(K\) chiếc bánh để mang về, và anh ta được phép chọn nhiều chiếc bánh cùng loại (chỉnh hợp lặp). Hãy sử dụng đệ quy để liệt kê tất cả các tập hợp \(K\) chiếc bánh có thể chọn.

Input

Hai số nguyên dương \(N\) và \(K\) (\(1 \leq K \leq N \leq 8\)).

Output

In ra tất cả các chỉnh hợp lặp có \(K\) phần tử được chọn từ tập \(\{1, 2, \dots, N\}\), mỗi chỉnh hợp trên một dòng.

Example

Test 1

Input
1 1
Output
1 

Test 2

Input
2 1
Output
1 
2 

Test 3

Input
2 2
Output
1 1 
1 2 
2 1 
2 2 

Test 4

Input
3 1
Output
1 
2 
3 

Test 5

Input
3 2
Output
1 1 
1 2 
1 3 
2 1 
2 2 
2 3 
3 1 
3 2 
3 3 

root

Mảng 4

100 điểm

Khai báo một mảng một chiều có \(5\) phần tử kiểu số nguyên, đặt tên là myArray.
Gán giá trị cụ thể cho từng phần tử như sau:

  • myArray[0] = 10
  • myArray[1] = 20
  • myArray[2] = 30
  • myArray[3] = 40
  • myArray[4] = 50

Tính tổng tất cả các phần tử này và lưu kết quả vào một biến số nguyên, đặt tên là totalSum, sau đó in ra màn hình totalSum.

Input

Không có dữ liệu đầu vào.

Output

Giá trị cuối cùng của biến totalSum sau khi thực hiện các thao tác.

Example

Test 1

Input
Nothing
Output
150

root

Startup

100 điểm

Một startup công nghệ vừa trải qua \(N\) ngày hoạt động. Doanh thu trong ngày thứ \(i\) \((1 \le i \le N)\) được ghi lại là \(A_i\) đô-la.

Quản lý của startup cần chuẩn bị báo cáo để thuyết trình với nhà đầu tư. Anh ta sẽ chọn một số ngày trong số \(N\) ngày này và trình bày biểu đồ cột thể hiện doanh thu của các ngày đã chọn theo thứ tự thời gian.

Để báo cáo gây ấn tượng hơn, anh ta sẽ chọn các ngày sao cho điểm ấn tượng là cao nhất.

Nếu anh ta chọn \(m\) ngày \((1 \le m \le N)\) với chỉ số \(p_1, p_2, \dots, p_m\) \((1 \le p_1 < p_2 < \dots < p_m \le N)\) thì điểm ấn tượng được tính như sau:

  • Ban đầu, ngày đầu tiên trong danh sách luôn được tính là một kỷ lục mới.
  • Với mỗi ngày tiếp theo trong danh sách, nếu doanh thu hôm đó lớn hơn tất cả các ngày trước đó (trong danh sách đã chọn), thì điểm ấn tượng tăng thêm \(1\).

Nói cách khác, điểm ấn tượng chính là số lần xuất hiện một mức doanh thu kỷ lục mới trong chuỗi ngày đã chọn.

Để bài thuyết trình không gượng ép, Minh chỉ chọn các ngày thoả đồng thời hai quy tắc sau:

  • Bắt buộc phải bao gồm ngày cuối cùng: \(p_m = N\).
  • Khoảng cách giữa hai ngày liên tiếp không vượt quá \(D\): với mọi \(j\) \((1 \le j \le m-1)\), ta có \(p_{j+1} - p_j \le D\).

Hãy tính điểm ấn tượng lớn nhất có thể đạt được.

Input

  • Dòng đầu chứa hai số nguyên \(N\) và \(D\) (\(D \le N \le 3 \times 10^5\)).
  • Dòng thứ hai chứa \(N\) số nguyên \(A_1, A_2, \dots, A_N\) --- doanh thu từng ngày.

Output

  • In ra một số nguyên duy nhất --- điểm ấn tượng tối đa theo các quy tắc trên.

Example

Test 1

Input
6 6
1 5 2 4 6 3
Output
4

Scoring

  • Có \(14\%\) số điểm ứng với \(N \leq 20\).
  • Có \(14\%\) số điểm ứng với \(N \leq 400\).
  • Có \(20\%\) số điểm ứng với \(N \leq 7000\).
  • Có \(12\%\) số điểm ứng với \(D = 1\).
  • Có \(40\%\) số điểm ứng không có ràng buộc bổ sung nào khác.
Xem thêm