Tổng Các Chữ Số Kế Tiếp
Ý Nghĩa Bài Toán
Xác định liệu có tồn tại số \(m\) sao cho tổng các chữ số của \(m+1\) lớn hơn tổng các chữ số của \(m\) đúng 1 đơn vị.
Mã Ví Dụ
Xem mã nguồn
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX = 500005;
void kiemTra()
{
ll a, b;
cin >> a >> b;
if (a + b - 1 > 0 && (a + b - 1) % 9 == 0)
{
cout << "CO" << "\n";
return;
}
cout << "KHONG" << "\n";
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int t;
cin >> t;
while (t--)
{
kiemTra();
}
return 0;
}
Hai Túi Lớn
Ý Nghĩa Bài Toán
Có hai túi \(P\) và \(Q\), trong đó \(P\) chứa \(k\) quả bóng với mỗi quả có một số nguyên dương. Thực hiện hai thao tác bất kỳ: di chuyển một quả bóng từ \(P\) sang \(Q\), hoặc tăng giá trị của một quả bóng trong \(P\) nếu nó cũng xuất hiện trong \(Q\). Hỏi liệu có thể làm cho hai túi giống nhau không?
Mã Ví Dụ
Xem mã nguồn
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX = 500005;
void xuLy()
{
int n;
cin >> n;
vector<int> soLuong(n + 1, 0);
for (int i = 0; i < n; ++i)
{
int x;
cin >> x;
soLuong[x]++;
}
for (int i = 1; i <= n; ++i)
{
if (soLuong[i] == 1)
{
cout << "KHONG" << "\n";
return;
}
soLuong[i + 1] += max(0LL, soLuong[i] - 2);
}
if (soLuong[n] % 2 != 0)
{
cout << "KHONG" << "\n";
return;
}
cout << "CO" << "\n";
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int t;
cin >> t;
while (t--)
{
xuLy();
}
return 0;
}
Chuyển Đổi Để Xuất Hiện Số 7
Ý Nghĩa Bài Toán
Cho số \(p\), thực hiện phép cộng với các số chỉ chứa chữ số 9 để xuất hiện chữ số 7 trong \(p\). Tìm số lần thực hiện ít nhất.
Mã Ví Dụ
Xem mã nguồn
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX = 500005;
void giaiQuyet()
{
ll p;
cin >> p;
for (int i = 0; i <= 9; ++i)
{
string chuoi = to_string(p - i);
int toiDa = 0;
for (char &ch : chuoi)
{
if (ch <= '7')
{
toiDa = max(toiDa, (int)(ch - '0'));
}
}
if (i >= 7 - toiDa)
{
cout << i << "\n";
return;
}
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int t;
cin >> t;
while (t--)
{
giaiQuyet();
}
return 0;
}