Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Các thủ thuật C++ hữu ích cho người mới bắt đầu lập trình thi đấu

Một số thủ thuật C++ giúp viết code nhanh hơn trong lập trình thi đấu:

  • Kiểm tra chẵn/lẻ không dùng %: if ((n & 1) != 0) // lẻ, else // chẵn. Dựa trên bit thấp nhất (LSB).
  • Nhân/chia nhanh 2^n bằng dịch bit: y = x << 2; (nhân 4), y = x >> 2; (chia 4).
  • Hoán đổi không biến trung gian: x ^= y; y ^= x; x ^= y; (dùng XOR).
  • Duyệt chuỗi không cần strlen(): for(int i = 0; s[i]; i++) (dừng khi gặp '\0').
  • emplace_back() thay push_back(): Nhanh hơn, không cấp phát bộ nhớ trung gian.
  • Hàm GCD built-in: __gcd(x, y).
  • Kích thước mảng: Trong main ~10^6, toàn cục ~10^7.
  • Chữ số đầu tiên (MSD) bằng log: double k = log10(n); k -= floor(k); int x = pow(10, k);
  • Số chữ số bằng log: int digit_count = floor(log10(n)) + 1;
  • Kiểm tra lũy thừa của 2: bool check = x && (!(x & (x-1)));
  • Algorithms kiểm tra điều kiện: all_of, any_of, none_of với predicate.
  • Copy container: copy_n(src, 5, dest);
  • Tạo dãy tăng dần iota(): iota(arr, arr+5, 15); → {15,16,17,18,19}.
  • Hằng số nhị phân: int x = 0b1101; (giá trị 13).
  • Từ khóa thay toán tử logic: and, or, not thay &&, ||, !.