[Lý Thuyết Số - Toán Học]. Bài 61. Đếm ước bản khó

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 200

Cho một mảng số nguyên A[] gồm n số nguyên dương. Gọi số M là tích các số trong mảng, hãy đếm xem số M có bao nhiêu ước, vì số lượng ước của M có thể rất lớn nên lấy kết quả sau khi chia dư cho 10^9 + 7.


Đầu vào

Dòng đầu tiên là số nguyên dương n.

Dòng thứ 2 là n số nguyên dương của mảng A.


Giới hạn

1<=n<= 10^6

1<=a[i]<=10^6


Đầu ra

In ra số ước của M


Ví dụ :

Input 01
3
3 2 5
Output 01
8

[Mảng 1 Chiều Nâng Cao]. Bài 41. Gộp mảng

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 200

Cho mảng A[] gồm N phần tử, bạn sẽ thực hiện N - 1 phép gộp trên mảng, trong đó mỗi phép gộp sẽ xóa 2 phần tử bất kỳ trong mảng và thêm mới 1 phần tử có giá trị bằng tổng 2 phần tử vừa xóa.

Chi phí mỗi lần gộp 2 phần tử trong mảng bằng tổng 2 phần tử đó, sau N - 1 lần gộp thì mảng chỉ còn 1 phần tử duy nhất. Nhiệm vụ của bạn là tìm phần tử duy nhất sau khi gộp đó và tìm ra chi phí gộp nhỏ nhất có thể.

Ví dụ A[] = {3, 9, 1, 2} => {12, 1, 2} => {12, 3} => {15} khi đó chi phí gộp sẽ là : (3 + 9) + (1 + 2) + (12 + 3). Và phần tử duy nhất trong mảng sau khi gộp là 15. Lưu ý đây chỉ là một cách gộp bất kỳ trong rất nhiều cách gộp khác nhau chứ không phải cách gộp có chi phí gộp nhỏ nhất


Đầu vào
  • Dòng đầu tiên gồm N

  • Dòng thứ 2 gồm N số A[i]


Giới hạn
  • 1<=N,M<=10^6

  • 1<=A[i]<=10^6


Đầu ra
  • In ra chi phí gộp nhỏ nhất và phần tử cuối cùng trong mảng sau khi gộp

Ví dụ :

Input 01
4
1 2 9 3
Output 01
24 15

Đường đi lớn nhất

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 200

Hệ số nhị phân và hệ thập lục phân (16) là 2 hệ số yêu thích của 28Tech, ngoài ra 28Tech cũng yêu thích những số lớn nữa. Bây giờ 28Tech cung cấp cho bạn 1 mảng 2 chiều nhị phân cỡ N hàng và N cột bao gồm các số 0 và 1, bạn xuất phát từ ô (1, 1) và tìm đường đi tới ô (N, N), tại mỗi lần di chuyển bạn được đi từ ô hiện tại xuống dưới hoặc sang phải. Nghĩa là nếu bạn đang ở ô (i, j) thì bạn có thể đi xuống ô (i + 1, j) hoặc ô (i, j + 1).

Trên đường đi đó bạn sẽ lấy các số 0 hoặc 1 tại ô bạn đi qua và khi đó bạn sẽ tạo được một số nhị phân có độ dài 2*N - 1, nhiệm vụ của bạn là hãy tìm cách đi tạo ra số nhị phân lớn nhất và in ra nó dưới dạng hệ số 16.

Ví dụ trong mảng 2 chiều này cách đi tạo ra số nhị phân lớn nhất là 1111011 tương ứng với số 123 trong hệ thập phân và 7B trong hệ 16, vì thế bạn cần in 7B


Đầu vào

Dòng đầu tiên chứa số N

N dòng tiếp theo mỗi dòng chứa N số của ma trận


Giới hạn

1<=N<=100


Đầu ra

In ra số nhị phân lớn nhất tạo thành ở hệ 16.


Ví dụ :

Input 01
8
1 0 0 1 0 0 0 0 
0 0 0 0 0 1 1 0 
0 1 1 0 0 0 1 1 
1 1 0 1 0 0 0 0 
1 1 0 0 0 0 1 1 
0 1 1 0 1 0 0 1 
0 1 1 0 1 1 0 0 
0 1 1 1 1 0 0 1
Output 01
4FF9
Input 02
5
1 1 0 0 0 
1 1 0 0 0 
1 1 0 0 0 
0 1 0 1 0 
1 0 0 1 1
Output 02
1F7

[Xâu Ký Tự]. Bài 68. Phép cộng mã hóa

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 200

28Tech cho bạn cách mã hóa các số nguyên bằng cách thay nó bằng các dấu đóng mở ngoặc tròn với quy luật như sau : Số 0 tương đương với tập rỗng là {}, các số > 0 sẽ là tập hợp tất cả các số nhỏ hơn nó viết liền nhau theo thứ tự từ bé đến lớn, ví dụ số 3 sẽ được viết {0,1,2} trong đó 0, 1, 2 ở dạng mã hóa. Vì thế ta sẽ được

  • Số 0 : {}

  • Số 1 : {{}}

  • Số 2 : {{},{{}}}

  • Số 3 : {{},{{}},{{},{{}}}}

  • Số 4 : {{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}

28Tech cho bạn 1 phép cộng dưới dạng bản rõ thông thường, bạn hãy thay thế nó thành bản mã hóa đồng thời in ra kết quả của phép tính đó cũng dưới dạng mã hóa.

Ví dụ : Phép tính 1+2 sẽ được thay bằng {{}}+{{},{{}}}={{},{{}},{{},{{}}}}


Đầu vào
  • Dòng 1 gồm số bộ test T

  • T dòng tiếp theo là phép nhân có dạng a+b trong đó a, b là 2 số nguyên không âm và có tổng không vượt quá 20.


Giới hạn
  • 1<=T<=100

  • 0<=x,y<=15


Đầu ra
  • In ra kết quả mỗi test trên 1 dòng

Ví dụ :

Input 01
3
2+1
2+0
1+2
Output 01
{{},{{}}}+{{}}={{},{{}},{{},{{}}}}
{{},{{}}}+{}={{},{{}}}
{{}}+{{},{{}}}={{},{{}},{{},{{}}}}

[Class & Object]. Bài 8. Sắp xếp lớp sinh viên 2

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 200

Cho danh sách sinh viên, mỗi sinh viên gồm các thông tin

  • Mã sinh viên

  • Họ Tên

  • Ngày Sinh

  • Lớp

  • Điểm gpa

Bạn hãy sắp xếp danh sách sinh viên này từ già tới trẻ, nếu có 2 sinh viên có cùng ngày sinh thì sắp xếp theo mã sinh viên tăng dần về từ điển.

Thông tin về tên và ngày sinh cần được chuẩn hóa về dạng chuẩn.


Đầu vào

Dòng 1 là N : số lượng sinh viên trong danh sách

5*N dòng tiêp theo mô tả thông tin của sinh viên, mỗi sinh viên gồm 5 dòng thông tin : mã, họ tên, ngày sinh, lớp, gpa


Giới hạn

1<=N<=1000


Đầu ra

In ra thông tin các sinh viên sau khi sắp xếp, gpa được in 2 số sau dấu phẩy.


Ví dụ :

Input 01
5
SV0001
NguYEN NGOc Dat
19/11/2001
CNTT1
3.80
SV0002
PhAM HOng LiNH
4/2/2000
DTVT1
3.80
SV0003
NguYEN Anh NHUng
2/4/2001
DTVT1
3.80
SV0004
LE HOng Dat
19/4/1998
CNTT1
3.10
SV0005
LE Anh Dat
25/12/2001
KHMT1
2.60
Output 01
SV0004 Le Hong Dat 19/04/1998 CNTT1 3.10
SV0002 Pham Hong Linh 04/02/2000 DTVT1 3.80
SV0003 Nguyen Anh Nhung 02/04/2001 DTVT1 3.80
SV0001 Nguyen Ngoc Dat 19/11/2001 CNTT1 3.80
SV0005 Le Anh Dat 25/12/2001 KHMT1 2.60