•
2:46 p.m. 8 Tháng 4, 2025
•
🐎Chia hết cho 2^k
| ✔️ Points: 1900 (p) | 🕒 Time limit: 1.0s | 💾 Memory limit: 512M | 📥 Input: stdin | 📤 Output: stdout |
Đề bài:
Nhân ngày 01/01/2021, Văn Quốc Khánh được mẹ cho một món quà, món quà được làm bằng hộp kim loại có mật khẩu. Mẹ Khánh rất thích những con số \(2^k\) với k là một số nguyên dương. Cho nên mật khẩu có dạng như sau:
Cho một số gồm N số nguyên dương
A1,A2,…,AN, hãy chọn ra 3 số sao cho tích của 3 số đó chia hết cho \(2^k\). Hai cách chọn được xem là khác biệt khi có ít nhất một chỉ số ở cách 1 không có trong cách 2.
Ví dụ: 1,2,3 và 2,1,4 được xem là 2 cách khác biệt, còn 2,1,3 và 3,2,1 được xem là cùng 1 cách.
Input
Dòng đầu tiên chứa hai số nguyên dương N,k.
Dòng thứ hai chứa dãy số A1,A2,…,AN.
Output
Một số nguyên duy nhất là số lượng chọn được
Constraints
- Subtask #1 (60% số testcase): N≤300,k≤20,Ai≤\(10^5\)
- Subtask #2 (40% số testcase): N≤2∗\(10^5\),k≤64,Ai≤\(10^8\)
Example
Sample input
30 3
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
Sample output
1925
📄 View as PDF
📁 My submissions
🗂️ All submissions
🏆 Best submissions
✏️ Authors:
Lucky2k9
Admin
KhoiNguyen213
▶️ Problem type
math, combinatorics, bit
•
11:27 a.m. 8 Tháng 4, 2025
•
🐉CSES - Download Speed | Tốc độ tải xuống
| ✔️ Points: 1900 (p) | 🕒 Time limit: 1.0s | 💾 Memory limit: 512M | 📥 Input: stdin | 📤 Output: stdout |
Đề bài:
Hãy xem xét một mạng lưới gồm n máy tính và m kết nối. Mỗi kết nối chỉ rõ tốc độ máy tính có thể gửi dữ liệu đến máy tính khác.
Kotivalo muốn tải xuống một số dữ liệu từ máy chủ. Tốc độ tối đa anh ta có thể thực hiện việc này là bao nhiêu, bằng cách sử dụng các kết nối trong mạng lưới?
Input
Dòng đầu tiên có hai số nguyên n và m: số lượng máy tính và kết nối. Các máy tính được đánh số 1,2,…,n. Máy tính 1 là máy chủ và máy tính n là máy tính của Kotivalo. Sau đó, có m dòng mô tả các kết nối. Mỗi dòng có ba số nguyên a, b và c: máy tính a có thể gửi dữ liệu đến máy tính b với tốc độ c
Output
In ra một số nguyên: tốc độ tối đa mà Kotivalo có thể tải xuống dữ liệu.
Constraints
- 1≤n≤500
- 1≤m≤1000
- 1≤a,b≤n
- 1≤c≤\(10^9\)
Example
Sample input
4 5
1 2 3
2 4 2
1 3 4
3 4 5
4 1 3
Sample output
6
📄 View as PDF
📁 My submissions
🗂️ All submissions
🏆 Best submissions
✏️ Authors:
Lucky2k9
Admin
KhoiNguyen213
▶️ Problem type
flow-general
•
9:47 a.m. 10 Tháng 4, 2025
bài olpkhhue22 - đếm dãy số bài này hơi khó nhưng mik cho =))))
include <bits/stdc++.h>
using namespace std;
define ll long long
const int MOD = 998244353;
const int MAXN = 900005;
int T, N, c[8][MAXN], p[255][100005], ch[255], ct[255];
vector<int> d[MAXN];
void preprocess() {
for (int i = 1; i < MAXN; i++) {
for (int j = i; j < MAXN; j += i) {
d[j].push_back(i);
}
}
p[0][0] = 1;
for (int i = 1; i < 255; i++) {
p[i][0] = 1;
for (int j = 1; j < 100005; j++) {
p[i][j] = 1LL * p[i][j - 1] * i % MOD;
}
}
}
int calculate(int v, int mx) {
const vector<int> &b = d[v];
int sz = b.size(), idx = 0;
memset(ch, 0, sizeof(int) * (sz + 1));
memset(ct, 0, sizeof(int) * (sz + 1));
for (int l = 1; l <= 7; l++) {
if (c[l][mx] != 0) {
while (idx < sz && b[idx] < l) idx++;
if (idx == sz || c[l][b[idx] - 1] > 0) return 0;
for (int i = idx; i < sz - 1; i++) {
ch[i - idx + 1] += c[l][b[i + 1] - 1] - c[l][b[i] - 1];
}
ct[sz - idx] += c[l][mx] - c[l][b[sz - 1] - 1];
}
}
ll res = 1, t1 = 1, t2 = 1;
for (int i = 1; i <= sz; i++) {
res = res * p[i][ch[i]] % MOD;
t1 = t1 * p[i][ct[i]] % MOD;
t2 = t2 * p[i - 1][ct[i]] % MOD;
}
return 1LL * res * (t1 - t2 + MOD) % MOD;
}
int main() {
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
preprocess();
cin >> T;
while (T--) {
memset(c, 0, sizeof c);
cin >> N;
int mx = 0;
for (int i = 1; i <= N; i++) {
int l, r;
cin >> l >> r;
c[l][r]++;
mx = max(mx, r);
}
for (int l = 1; l <= 7; l++) {
for (int i = 1; i <= mx; i++) {
c[l][i] += c[l][i - 1];
}
}
int res = 0;
for (int v = 1; v <= mx; v++) {
res = (res + calculate(v, mx)) % MOD;
}
cout << res << '\n';
}
return 0;
}
