LQDuy2
Duy Cầu Giấy

Lên thêm 1 bài theo đơn đặt hàng của thầy Sang Nguyên nhé aenh em.
shortest-subarray-with-or-at-least-k-ii
shortest-subarray-with-or-at-least-k-ii
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
const int M = 5;
int dp[N][M][20];
int a[N][M];
int log_2[N];
int n, m, k;
/**
3 2 4
1 2
1 3
2 2
**/
void prepare() {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
dp[i][j][0] = a[i][j];
}
}
for (int k = 1; (1<<k) <= n; ++k) {
int step = 1<<(k-1);
for (int i = 0; i + 2*step <= n; ++i) {
for (int mi = 0; mi < m; ++mi) {
int i1 = dp[i][mi][k-1];
int i2 = dp[i+step][mi][k-1];
dp[i][mi][k] = max(i1, i2);
}
}
}
log_2[1] = 0;
for (int i = 2; i <= n; i++) {
log_2[i] = log_2[i/2] + 1;
}
}
int query(int l, int r, int mi) {
int k = log_2[r - l + 1];
return max(dp[l][mi][k], dp[r - (1<<k) + 1][mi][k]);
}
int main() {
cin >> n >> m >> k;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> a[i][j];
}
}
prepare();
int l = 0;
int maxLen = INT_MIN;
int result[m];
int saveResult[5] = {0, 0, 0, 0, 0};
for (int r = 0; r < n; ++r) {
while(l <= r) {
int maxCount = 0;
for(int mi = 0; mi < m; ++mi) {
int qResult = query(l, r, mi);
result[mi] = qResult;
maxCount += qResult;
}
if (maxCount > k) {
++l;
} else {
int len = r-l + 1;
if (len > maxLen) {
maxLen = len;
for (int i = 0; i < m; ++i) {
saveResult[i] = result[i];
}
}
break;
}
}
}
for (int i = 0; i < m; ++i) {
cout << saveResult[i] << " ";
}
return 0;
}
cin thế này nhập to tay luôn, sao k đọc từ file vào cho tiệncodeforce vẫn là 1 đẳng cấp khác, mất hơn nửa ngày. Bài này dùng sparse table vs sliding window @LQDuy2 @sangnguyen112233 @Kengoc2018
C:#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; const int M = 5; int dp[N][M][20]; int a[N][M]; int log_2[N]; int n, m, k; /** 3 2 4 1 2 1 3 2 2 **/ void prepare() { for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { dp[i][j][0] = a[i][j]; } } for (int k = 1; (1<<k) <= n; ++k) { int step = 1<<(k-1); for (int i = 0; i + 2*step <= n; ++i) { for (int mi = 0; mi < m; ++mi) { int i1 = dp[i][mi][k-1]; int i2 = dp[i+step][mi][k-1]; dp[i][mi][k] = max(i1, i2); } } } log_2[1] = 0; for (int i = 2; i <= n; i++) { log_2[i] = log_2[i/2] + 1; } } int query(int l, int r, int mi) { int k = log_2[r - l + 1]; return max(dp[l][mi][k], dp[r - (1<<k) + 1][mi][k]); } int main() { cin >> n >> m >> k; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { cin >> a[i][j]; } } prepare(); int l = 0; int maxLen = INT_MIN; int result[m]; int saveResult[5] = {0, 0, 0, 0, 0}; for (int r = 0; r < n; ++r) { while(l <= r) { int maxCount = 0; for(int mi = 0; mi < m; ++mi) { int qResult = query(l, r, mi); result[mi] = qResult; maxCount += qResult; } if (maxCount > k) { ++l; } else { int len = r-l + 1; if (len > maxLen) { maxLen = len; for (int i = 0; i < m; ++i) { saveResult[i] = result[i]; } } break; } } } for (int i = 0; i < m; ++i) { cout << saveResult[i] << " "; } return 0; }
chỉ cần m biết đọc biết viết là làm được trình độ văn hóa trên 12 và có điểm tổng kết 12 năm liền môn toán > 5.Thớt hay, nhưng tao éo biết làm
cin này là đọc input của test case mà, có đọc từ file thì cũng phải nạp vô biến thôicin thế này nhập to tay luôn, sao k đọc từ file vào cho tiện
ngồi ít vẫn hiệu quả con hơn ngồi nhiều mà hở ra là xem vú Lồn
Sliding windowLên thêm 1 bài theo đơn đặt hàng của thầy Sang Nguyên nhé aenh em.
shortest-subarray-with-or-at-least-k-ii
class Solution {
private:
void bits_update(vector<int>& bits, int n, int diff) {
for (int i = 0; i < 32; ++i) {
if (n & (1 << i)) {
bits[i] += diff;
}
}
}
int bits_to_int(vector<int>& bits) {
int res = 0;
for (int i = 0; i < 32; ++i) {
if (bits[i]) {
res += (1 << i);
}
}
return res;
}
public:
int minimumSubarrayLength(vector<int>& nums, int k) {
int res = INT_MAX;
std::vector<int> bits(32, 0);
int l = 0;
for (int r = 0; r < nums.size(); ++r) {
bits_update(bits, nums[r], 1);
int cur_or = bits_to_int(bits);
while (cur_or >= k && l <= r) {
res = min(res, r - l + 1);
bits_update(bits, nums[l], -1);
++l;
cur_or = bits_to_int(bits);
}
}
return res == INT_MAX ? -1 : res;
}
};
đúng là codeforce chỉ hợp ccho bọn thi competitive programming, t nhìn code C++ toàn con trỏ là nản mẹ r.codeforce vẫn là 1 đẳng cấp khác, mất hơn nửa ngày. Bài này dùng sparse table vs sliding window @LQDuy2 @sangnguyen112233 @Kengoc2018
C:#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; const int M = 5; int dp[N][M][20]; int a[N][M]; int log_2[N]; int n, m, k; /** 3 2 4 1 2 1 3 2 2 **/ void prepare() { for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { dp[i][j][0] = a[i][j]; } } for (int k = 1; (1<<k) <= n; ++k) { int step = 1<<(k-1); for (int i = 0; i + 2*step <= n; ++i) { for (int mi = 0; mi < m; ++mi) { int i1 = dp[i][mi][k-1]; int i2 = dp[i+step][mi][k-1]; dp[i][mi][k] = max(i1, i2); } } } log_2[1] = 0; for (int i = 2; i <= n; i++) { log_2[i] = log_2[i/2] + 1; } } int query(int l, int r, int mi) { int k = log_2[r - l + 1]; return max(dp[l][mi][k], dp[r - (1<<k) + 1][mi][k]); } int main() { cin >> n >> m >> k; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { cin >> a[i][j]; } } prepare(); int l = 0; int maxLen = INT_MIN; int result[m]; int saveResult[5] = {0, 0, 0, 0, 0}; for (int r = 0; r < n; ++r) { while(l <= r) { int maxCount = 0; for(int mi = 0; mi < m; ++mi) { int qResult = query(l, r, mi); result[mi] = qResult; maxCount += qResult; } if (maxCount > k) { ++l; } else { int len = r-l + 1; if (len > maxLen) { maxLen = len; for (int i = 0; i < m; ++i) { saveResult[i] = result[i]; } } break; } } } for (int i = 0; i < m; ++i) { cout << saveResult[i] << " "; } return 0; }
qua ngồi được bao lâu tml?
ngày xưa thầy dốt ko biết dạy C với C++ chứ bản chất con trỏ cũng chỉ là 1 loại biến, thay vì truyền giá trị thì truyền địa chỉ , và mày nhớ khởi tạo nó, dùng xong phải thủ tiêu nó đi dọn dẹp bộ nhớ, trước khi dùng thì kiểm tra tính hợp lệ mọi thứ là OK thôi mà.đúng là codeforce chỉ hợp ccho bọn thi competitive programming, t nhìn code C++ toàn con trỏ là nản mẹ r.
thuật toán phải vững lý thuyết trước rồi dùng tư duy áp dụng vào
về sau chỉ cần có tài liệu đặc tả, đọc lướt 1 lần thấy có vẻ đầy đủ các trường hợp rồi thì cắm đầu vào code liên tục 3 ngày 3 đêmthuật toán phải vững lý thuyết trước rồi dùng tư duy áp dụng vào
ngồi 6 7 tiếng đéo suy nghĩ đc gì do m chưa học thôi
trừ khi m thiên tài tới mức tự sáng tạo ra lý thuyết (mà thiên tài cũng cần vài chục năm)
do m làm gì thôivề sau chỉ cần có tài liệu đặc tả, đọc lướt 1 lần thấy có vẻ đầy đủ các trường hợp rồi thì cắm đầu vào code liên tục 3 ngày 3 đêm, code xong đẩy lên git bảo bọn QC vào test. Logic code khi đi làm cũng ko khó bằng lúc đi học, và gần như ko dùng đến khi đi làm.
big tech cũng vậy thôi, thi đầu vào xong (khó nhất) cũng đá vào ngồi làm việc với framework chứ không code chay nữa. Lúc này thì cũng chỉ làm theo quy trình sản xuất phần mềm thông thường và các tiêu chuẩn của ngành phần mềm. Thuật toán sử dụng đa phần là logic đơn giản (cũng là 1 tiêu chuẩn).do m làm gì thôi
bọn cày trâu học thuật toán chủ yếu hướng tới làm big tech
thì code rồi cần gì code lạibig tech cũng vậy thôi, thi đầu vào xong (khó nhất) cũng đá vào ngồi làm việc với framework chứ không code chay nữa. Lúc này thì cũng chỉ làm theo quy trình sản xuất phần mềm thông thường và các tiêu chuẩn của ngành phần mềm. Thuật toán sử dụng đa phần là logic đơn giản (cũng là 1 tiêu chuẩn).
về sau chủ yếu hiểu là thông tin A tuân theo chuẩn b, lưu ở hệ thống C, trước khi gọi bởi hệ thống D thì kiểm tra qua hệ thống E và ghi log vào hệ thống F. Các nghiệp vụ dùng đến A bao gồm {a1,a2,a3}... còn sắp xếp hoạt động ntn chả quan trọng bằng nó sắp xếp trên hệ thống nào.thì code rồi cần gì code lại
phải hiểu nó hoạt động ntn thôi
tao có ngồi 6 tiếng để suy nghĩ 1 bài thuật toán đâu, tao còn đi làm đi học, giờ đéo đâu mà ngồi 6 tiếng cho 1 bài thuật toánthuật toán phải vững lý thuyết trước rồi dùng tư duy áp dụng vào
ngồi 6 7 tiếng đéo suy nghĩ đc gì do m chưa học thôi
trừ khi m thiên tài tới mức tự sáng tạo ra lý thuyết (mà thiên tài cũng cần vài chục năm)
Vãi thầy dốt. M dốt thì cóngày xưa thầy dốt ko biết dạy C với C++ chứ bản chất con trỏ cũng chỉ là 1 loại biến, thay vì truyền giá trị thì truyền địa chỉ , và mày nhớ khởi tạo nó, dùng xong phải thủ tiêu nó đi dọn dẹp bộ nhớ, trước khi dùng thì kiểm tra tính hợp lệ mọi thứ là OK thôi mà.
Recent studies from Microsoft and Google have found that about 70 percent of all security vulnerabilities are caused by memory safety issues.
mày trích cái câu đấy ở đâu thì hiểu theo đúng ngữ cảnh nhé, và "memory safety issues" là những vấn đề cụ thể thế nào nữa. Gán hết tội cho con trỏ là đéo ổn.Vãi thầy dốt. M dốt thì có
Dăm ba câu căn bản, ai chẳng biết con trỏ là vậy.
Vấn đề là dùng nó dễ gây lỗi, vấn đề toàn cầu trong toàn giới dev, chứ riêng gì một cá nhân dốt nát nào.
Microsoft và Gu-gờ dốt hơn cả m, đếu biết sử dụng con trỏ an toàn.
công nhận bài codeforce hay, tao đưa cái đề thằng chatGPT nó đéo hiểu, giải thích sai đề với test case luônđúng là codeforce chỉ hợp ccho bọn thi competitive programming, t nhìn code C++ toàn con trỏ là nản mẹ r.
chat gpt mà giải đc thì con người sắp tuyệt chủng cmnrcông nhận bài codeforce hay, tao đưa cái đề thằng chatGPT nó đéo hiểu, giải thích sai đề với test case luôn