Sunday 27 October 2019

Khaled in HIT (Codechef October Lunchtime 2019)

Lunchtime đầu tiên tham dự mà solve được có 1 bài, cũng đăng lên cho có content. 

(Tất cả code mình đã đăng trên blog đều được host ở gist.github.com hoặc lưu trữ trên GitHub).

Đề bài trên Codechef - bản tiếng Việt

Solution: Trước tiên ta sắp xếp tăng dần số điểm của từng học sinh. Do tổng số học sinh là bội số của 4 nên ta có thể chia số học sinh vào 4 khoảng điểm. Đến đây chỉ cần kiểm tra điểm của học sinh cuối cùng một khoảng với điểm của học sinh đầu tiên khoảng tiếp theo, nếu bằng nhau thì không thể chia, ngược lại thì lấy điểm của học sinh đầu tiên khoảng tiếp theo làm mốc chia điểm.

Code mẫu (C++):

Tuesday 15 October 2019

P166PROH - Round 6H - Số gần nguyên tố

https://spoj.com/PTIT/problems/P166PROH

Đề bài: Một số được gọi là số gần nguyên tố nếu nó chỉ có đúng hai ước số nguyên tố. Ví dụ: 26, 62. Hãy đếm số lượng các số gần nguyên tố không vượt quá $N$.

Input: Một số $N$ duy nhất ($1 \leq N \leq 3000$)
Output: Một số nguyên duy nhất là số lượng các số nguyên tố không vượt quá N.

Example:
Input:
11
Output:
2

Solution: Ở đây mình lạm dụng sàng Eratosthenes nên chưa biết duyệt trâu có AC hay không. Cơ bản là mình check số nguyên tố rồi check số nguyên tố đó có phải ước của một số hay không, nếu có thì số lượng ước + 1. Nếu số lượng ước = 2 $\rightarrow$ số đó là số gần nguyên tố.

Code:

NEARPRIME - Số nguyên tố gần nhất

Đề bài: Cho số nguyên N (1 <= N <= 2 * 10^6) nhập từ bàn phím. Hãy đưa ra số M là số nguyên tố gần với N nhất. Số nguyên tố gần với N được định nghĩa là một số nguyên tố mà khoảng cách từ N tới nó là nhỏ nhất. Nếu ta tìm được 2 số nguyên tố có cùng khoảng cách tới N, ưu tiên in ra màn hình số nhỏ hơn (codelearn.io - practice easy).

Testcase #1:
Input: 
51
Output: 
53

Testcase #2:
Input:
1000
Output:
997

Solution: Dựng sàng Eratosthenes, sau đó tìm số nguyên tố gần nhất bên trái và bên phải. Nếu khoảng cách đến số nguyên tố bên trái lớn hơn khoảng cách đến số bên phải thì in số bên phải ra, còn lại in số bên trái.

Code:


Sunday 13 October 2019

Shitpost đêm khuya #1

Mình vừa mất con domain free. Đồ free dùng thì không tiếc, chỉ tiếc vì cái domain đó là domain hack của tên mình (tranhoan.gq/uan). Đã mở support ticket trên Freenom để khiếu nại, nhưng pending cả tuần nay.

Thế là mình phải tìm một chỗ mới để shitpost, thứ nhất là không phải cái gì cũng post lên Facebook được, thứ hai là phải tập viết lách dần để sau này khỏi bị khớp. Thành ra phải tìm một domain mới, sau là để làm chỗ post mấy bài shitpost dạng này lên.

Cũng may là mình mới submit GitHub Student Developer pack cách đây mấy tháng. Trong Developer Pack có liên kết với name.com - chuyên cung cấp hosting và domain. Và mình được free một domain .codes, tận dụng luôn vậy.

Có cái domain xong, cái chất ngu của mình lại trỗi dậy. Mình quên mất là Blogger có cung cấp free SSL, thay vào đó mình lại trỏ domain về Cloudflare. Mất cả buổi chiều mới config lại được cái Blogger, tốn thời gian vl.

Cuối cùng, có blog, có domain rồi thì content lại không có. Ngồi vắt óc chỉ để viết mấy dòng thế này thôi cho đỡ trống. 

Ít thông tin thêm về GitHub Student Developer Pack:
+ Dành cho học sinh / sinh viên từ 13 tuổi trở lên.
+ Có tài khoản GitHub.

Cách apply: Vào đây, nhấn Get the pack.


GitHub sẽ yêu cầu bạn chụp ảnh thẻ sinh viên để xác nhận. Cứ chụp rồi confirm, GitHub sẽ xác nhận trong khoảng 13 ngày (của mình là đúng 13 ngày). 

Phúc lợi: xem tại đây

Happy coding!


Popular posts