-
-
-
- Lớp 2
- Tự nhiên và xã hội
- Tiếng việt
- Toán học
- Tiếng Anh
- Đạo đức
- Âm nhạc
- Mỹ thuật
- HĐ trải nghiệm, hướng nghiệp
- Lớp 4
- Khoa học
- Tiếng việt
- Toán học
- Đạo đức
- Tiếng Anh
- Lịch sử và Địa lí
- Công nghệ
- HĐ trải nghiệm, hướng nghiệp
- GD Thể chất
- Âm nhạc
- Lớp 5
- Khoa học
- Toán học
- Tiếng việt
- Tin học
- Tiếng Anh
- Đạo đức
- Lịch sử và Địa lí
- HĐ trải nghiệm, hướng nghiệp
- Lớp 6
- Công nghệ
- Tin học
- Lịch sử và Địa lí
- GDCD
- Ngữ văn
- Toán học
- Khoa học tự nhiên
- Tiếng Anh
- Âm nhạc
- Mỹ thuật
- HĐ trải nghiệm, hướng nghiệp
- Lớp 7
- Tiếng Anh
- GDCD
- Toán học
- Công nghệ
- Tin học
- Ngữ văn
- Lịch sử và Địa lí
- Khoa học tự nhiên
- HĐ trải nghiệm, hướng nghiệp
- Âm nhạc
- Lớp 8
- Tiếng Anh
- GDCD
- Toán học
- Công nghệ
- Ngữ văn
- Khoa học tự nhiên
- Lịch sử và Địa lí
- HĐ trải nghiệm, hướng nghiệp
- GD Thể chất
- Âm nhạc
- Lớp 9
- Tiếng Anh
- GDCD
- Toán học
- Công nghệ
- Tin học
- Ngữ văn
- Khoa học tự nhiên
- HĐ trải nghiệm, hướng nghiệp
- Lịch sử và Địa lí
- Lớp 10
- Hóa học
- Tiếng Anh
- Lịch sử
- Sinh học
- Địa lí
- Vật lí
- Tin học
- Toán học
- GD kinh tế và pháp luật
- Công nghệ
- Ngữ văn
- HĐ trải nghiệm, hướng nghiệp
- GD Thể chất
- GD Quốc phòng và An ninh
- Lớp 11
- Hóa học
- Tiếng Anh
- Vật lí
- Tin học
- Toán học
- Địa lí
- Công nghệ
- Lịch sử
- Ngữ văn
- Sinh học
- GD Thể chất
- GD Quốc phòng và An ninh
- GD kinh tế và pháp luật
- HĐ trải nghiệm, hướng nghiệp
-
-
- ИССЛЕДОВАТЬ
-
-
-
-
-
-
-
-
- FAVORITES
-
- QandAs
- Tin Học
- Grade 7
- Câu 1: Xâu đơn nhất Xâu đơn nhất là xâu có các ký tự chỉ xuất hiện một lần duy nhất, không có ký tự nào trùng nhau. Yêu cầu: Nhập vào một xâu S, kiểm tra xem S có phải xâu đơn nhất hay không Dữ liệu vào từ thiết bị vào
Câu 1: Xâu đơn nhất Xâu đơn nhất là xâu có các ký tự chỉ xuất hiện một lần duy nhất, không có ký tự nào trùng nhau. Yêu cầu: Nhập vào một xâu S, kiểm tra xem S có phải xâu đơn nhất hay không Dữ liệu vào từ thiết bị vào
Câu 1: Xâu đơn nhất
Xâu đơn nhất là xâu có các ký tự chỉ xuất hiện một lần duy nhất, không có ký tự nào trùng nhau.
Yêu cầu: Nhập vào một xâu S, kiểm tra xem S có phải xâu đơn nhất hay không?
Dữ liệu vào từ thiết bị vào chuẩn:
Một xâu S bất kì.
Dữ liệu ra từ thiết bị ra chuẩn:
Nếu xâu không phải xâu đơn nhất thì in ra NO.
Nếu xâu là xâu đơn nhất thì in ra YES.
Ví dụ:
123 123a456a
YES NO
Câu 2:
Nhân dịp ngày quốc tế thiếu nhi 01/6 sắp đến. Minh quyết định mua tặng ba mẹ mình mỗi người một món quà. Trong cửa hàng lưu niệm có N sản phẩm, sản phẩm thứ i có giá trị Ai, Với tổng số tiền Minh có là K, Minh quyết định sẽ mua 2 món quà khác nhau có tổng giá trị lớn nhất và không vượt quá số tiền hiện có.
Yêu cầu: Hãy xác định tổng số tiền Minh chi trả
Dữ liệu vào từ thiết bị vào chuẩn:
Dòng 1: Ghi 2 số nguyên N và K (2 ≤ N ≤ 104, 2 ≤ K ≤ 109)
Dòng 2: Ghi N số nguyên dương, mỗi số cách số tiếp theo một dấu cách.
Dữ liệu ra từ thiết bị ra chuẩn:
Một số duy nhất là kết quả của bài toán, nếu không có kết quả in ra 0
Ràng buộc:
Subtask 1: 60 % test có N ≤ 100
Subtask 2: 40 % test còn lại không có điều kiện gì thêm.
This anwser using AI, please
Câu 1:
Để kiểm tra xem xâu S có phải là xâu đơn nhất hay không, ta có thể thực hiện các bước như sau:
1. Đếm số lần xuất hiện của từng ký tự trong xâu S.
2. Nếu bất kỳ ký tự nào xuất hiện nhiều hơn một lần, tức là xâu không phải là xâu đơn nhất.
3. Nếu tất cả các ký tự đều xuất hiện một lần, thì xâu là xâu đơn nhất.
Code mẫu:
```python
def is_unique_string(s):
char_count = {}
for char in s:
if char in char_count:
return "NO"
char_count[char] = 1
return "YES"
s = input().strip()
print(is_unique_string(s))
```
Giải thích:
- Ta sử dụng một từ điển (dictionary) để đếm số lần xuất hiện của mỗi ký tự.
- Nếu trong quá trình kiểm tra, một ký tự đã tồn tại trong từ điển, tức là nó xuất hiện hơn một lần, ta ngay lập tức có thể trả về "NO".
- Nếu kiểm tra xong tất cả ký tự mà không tìm thấy ký tự nào trùng lặp, ta trả về "YES".
Câu 2:
Để tìm tổng giá trị lớn nhất của hai món quà mà Minh có thể mua mà không vượt quá số tiền K, ta có thể thực hiện các bước như sau:
1. Sắp xếp danh sách các sản phẩm theo giá trị tăng dần.
2. Sử dụng hai con trỏ (pointers) để tìm hai sản phẩm sao cho tổng giá trị không vượt quá K và là lớn nhất có thể. Một con trỏ sẽ bắt đầu từ đầu danh sách và con trỏ còn lại sẽ bắt đầu từ cuối danh sách.
3. Tính tổng giá trị của sản phẩm mà hai con trỏ đang chỉ tới:
- Nếu tổng nhỏ hơn hoặc bằng K, lưu lại tổng lớn nhất và tiến con trỏ bắt đầu lên một vị trí.
- Nếu tổng lớn hơn K, rút con trỏ cuối xuống một vị trí.
4. Lặp lại cho đến khi hai con trỏ gặp nhau.
Code mẫu:
```python
def max_gift_value(n, k, prices):
prices.sort()
left = 0
right = n - 1
max_value = 0
while left < right:
total = prices[left] + prices[right]
if total <= k:
max_value = max(max_value, total)
left += 1
else:
right -= 1
return max_value
n, k = map(int, input().strip().split())
prices = list(map(int, input().strip().split()))
result = max_gift_value(n, k, prices)
print(result)
```
Giải thích:
- Với việc sắp xếp danh sách, ta có thể dễ dàng tìm hai giá trị sao cho tổng là lớn nhất mà không vượt quá K thông qua việc di chuyển từ cả hai phía của danh sách.
- Nếu không có hai sản phẩm nào mà tổng giá trị nhỏ hơn hoặc bằng K, hàm sẽ trả về 0 như yêu cầu.
Để kiểm tra xem xâu S có phải là xâu đơn nhất hay không, ta có thể thực hiện các bước như sau:
1. Đếm số lần xuất hiện của từng ký tự trong xâu S.
2. Nếu bất kỳ ký tự nào xuất hiện nhiều hơn một lần, tức là xâu không phải là xâu đơn nhất.
3. Nếu tất cả các ký tự đều xuất hiện một lần, thì xâu là xâu đơn nhất.
Code mẫu:
```python
def is_unique_string(s):
char_count = {}
for char in s:
if char in char_count:
return "NO"
char_count[char] = 1
return "YES"
s = input().strip()
print(is_unique_string(s))
```
Giải thích:
- Ta sử dụng một từ điển (dictionary) để đếm số lần xuất hiện của mỗi ký tự.
- Nếu trong quá trình kiểm tra, một ký tự đã tồn tại trong từ điển, tức là nó xuất hiện hơn một lần, ta ngay lập tức có thể trả về "NO".
- Nếu kiểm tra xong tất cả ký tự mà không tìm thấy ký tự nào trùng lặp, ta trả về "YES".
Câu 2:
Để tìm tổng giá trị lớn nhất của hai món quà mà Minh có thể mua mà không vượt quá số tiền K, ta có thể thực hiện các bước như sau:
1. Sắp xếp danh sách các sản phẩm theo giá trị tăng dần.
2. Sử dụng hai con trỏ (pointers) để tìm hai sản phẩm sao cho tổng giá trị không vượt quá K và là lớn nhất có thể. Một con trỏ sẽ bắt đầu từ đầu danh sách và con trỏ còn lại sẽ bắt đầu từ cuối danh sách.
3. Tính tổng giá trị của sản phẩm mà hai con trỏ đang chỉ tới:
- Nếu tổng nhỏ hơn hoặc bằng K, lưu lại tổng lớn nhất và tiến con trỏ bắt đầu lên một vị trí.
- Nếu tổng lớn hơn K, rút con trỏ cuối xuống một vị trí.
4. Lặp lại cho đến khi hai con trỏ gặp nhau.
Code mẫu:
```python
def max_gift_value(n, k, prices):
prices.sort()
left = 0
right = n - 1
max_value = 0
while left < right:
total = prices[left] + prices[right]
if total <= k:
max_value = max(max_value, total)
left += 1
else:
right -= 1
return max_value
n, k = map(int, input().strip().split())
prices = list(map(int, input().strip().split()))
result = max_gift_value(n, k, prices)
print(result)
```
Giải thích:
- Với việc sắp xếp danh sách, ta có thể dễ dàng tìm hai giá trị sao cho tổng là lớn nhất mà không vượt quá K thông qua việc di chuyển từ cả hai phía của danh sách.
- Nếu không có hai sản phẩm nào mà tổng giá trị nhỏ hơn hoặc bằng K, hàm sẽ trả về 0 như yêu cầu.
Ответить
© 2025 Học Tốt Online - Chia Sẻ Tài Liệu Học Tập và Giải Bài Tập Miễn Phí
Russian
