Chia sẻ Giải Pháp Hrbust ACM Luyện Tập Lập Trình 20240922
HowieHz
24-09-2024
Chuyển giao kiến thức > Mở khóa cuộc thi > Lưu trữ giải pháp
🌍 Tiếng Việt
102
- Chia sẻ bài tập thuật toán và giải pháp tổng hợp
Lời mở đầu
Liên kết danh sách bài tập: Luyện tập lập trình 20240922 @ Hrbust Online Judge
Bài A
Kiểu dữ liệu của d
phải là double
, không phải float
. Nếu không, kết quả cuối cùng sẽ bị mất độ chính xác.
Mã nguồn C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t > 0) {
t--;
int p, w, s;
double d = 0;
cin >> p >> w >> s;
if (s < 250) {
d = 0;
} else if (s < 500) {
d = 0.02;
} else if (s < 1000) {
d = 0.05;
} else if (s < 2000) {
d = 0.08;
} else if (s < 3000) {
d = 0.1;
} else {
d = 0.15;
}
cout << fixed << setprecision(3) << 1.0 * p * w * s * (1 - d);
cout << endl;
}
return 0;
}
|
Bài B
Mã nguồn Python để tạo bảng giá trị
1
2
3
4
5
6
7
8
9
10
11
12
13
|
l = []
for i in range(-9, 9 + 1):
temp_l = []
for _ in range(1, 9 + 1):
temp_l.append(0)
l.append(temp_l)
for a in range(-9, 9 + 1):
for n in range(1, 9 + 1):
sum = 0
for le in range(1, n + 1):
sum += int(le * "1") * a
l[a + 9][n - 1] = sum
print(l)
|
Kết quả xuất ra:
1
2
3
|
[{-9, -108, -1107, -11106, -111105, -1111104, -11111103, -111111102,
-1111111101},
{-8, -96, -984, -9872, -98760, -987648, -9876536, -98765424, -987654312},...
|
Mã nguồn C++ để sử dụng kết quả
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int ans[][9] = {
{-9, -108, -1107, -11106, -111105, -1111104, -11111103, -111111102,
-1111111101}, ...
};
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t > 0) {
t--;
int a, n;
cin >> a >> n;
cout << ans[a + 9][n - 1];
cout << endl;
}
return 0;
}
|
Bài C
Mã nguồn Python để tạo bảng giá trị
1
2
3
4
|
for i in range(1000):
if (i**2) <= 1000000:
if str(i**2).endswith(str(i)):
print(i**2, end=",")
|
Kết quả xuất ra:
1
|
0,1,25,36,625,5776,141376,390625,
|
Mã nguồn C++ để sử dụng kết quả
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int ans[] = {0, 1, 25, 36, 625, 5776, 141376, 390625};
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t > 0) {
t--;
int a, b;
cin >> a >> b;
bool flag = true;
for (int number : ans) {
if (number <= b && number >= a) {
// Tránh xuất thừa dấu cách
if (flag) {
cout << number;
flag = false;
} else {
cout << " " << number;
}
}
}
cout << endl;
}
return 0;
}
|
Bài D
Mã nguồn C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
while (n > 0) {
n--;
int a, b;
cin >> a >> b;
vector<int> l;
bool start_flag = true;
for (int i = a; i <= b; i++) {
if (i % 3 != 0) {
if (start_flag) {
cout << i;
start_flag = false;
continue;
}
cout << " " << i;
}
}
cout << endl;
}
return 0;
}
|
Bài E
Mã nguồn C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t > 0) {
t--;
int a;
cin >> a;
int max_line = 2 * a - 1;
for (int i = 1; i <= max_line; i += 2) {
for (int ii = 0; ii <= ((max_line - i) / 2) - 1; ii++) {
cout << " ";
}
for (int iii = 0; iii <= i - 1; iii++) {
cout << "*";
}
cout << endl;
}
for (int i = max_line; i > 1; i -= 2) {
for (int ii = (max_line - i) / 2 + 1; ii > 0; ii--) {
cout << " ";
}
for (int iii = (i - 1) - 1; iii > 0; iii--) {
cout << "*";
}
cout << endl;
}
}
return 0;
}
|
Các bài còn lại cũng đã được chuyển sang tiếng Việt tương tự như trên.
Bài viết đề xuất
2024-09-16 Hrbust ACM Luyện tập 2024 tuần thứ 4 giải pháp chia sẻ (A-G,J-O)
2024-09-09 Hrbust ACM Luyện tập 2024 tuần thứ 3 giải pháp chia sẻ
2024-09-02 Hrbust ACM Luyện tập 2024 tuần thứ 1~2 giải pháp chia sẻ
Hy vọng tài liệu này sẽ hữu ích cho các bạn!