0Pricing
Competitive Programming Academy · Pelajaran

Mengapa TLE Terjadi dan Cara Menemukannya

Menemukan loop tersembunyi yang menghabiskan anggaran waktu

Mengapa TLE Terjadi dan Cara Menemukannya adalah pelajaran Competitive Programming Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Competitive Programming Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Competitive Programming Academy mencakup 4 pelajaran total.

Mengenal Putusan TLE

TLE berarti Batas Waktu Terlampaui: kode Anda benar, tetapi terlalu lambat. Inilah hambatan yang paling sering ditemui pemula dalam kontes. ⏰

Penyebab Umum

TLE hampir selalu disebabkan oleh kompleksitas yang terlalu tinggi untuk n. Gagasan O(n^2) pada n = 10^6 akan selalu melampaui anggaran waktu.

Perulangan Dalam yang Tersembunyi

Sumber TLE yang paling sulit disadari adalah perulangan yang tidak Anda perhatikan. Pemanggilan metode di dalam perulangan mungkin juga melakukan perulangan, sehingga O(n) berubah menjadi O(n^2).

for x in arr:
    if x in seen_list:
        ...

Keanggotaan dalam Daftar

Memeriksa apakah x ada di dalam daftar membutuhkan O(n) setiap kali. Di dalam perulangan, kompleksitasnya menjadi kuadratik. Gunakan himpunan untuk pengujian keanggotaan O(1).

seen = set()
if x in seen:
    ...

Membangun String dalam Perulangan

Menggabungkan string dengan tanda plus di dalam perulangan menyalin seluruh string setiap kali. Biaya tersembunyi ini adalah O(n^2), jadi kumpulkan bagian-bagiannya lalu gunakan join sekali.

parts = []
parts.append(s)
result = "".join(parts)

Input Lambat Merugikan

Membaca input berukuran sangat besar dengan input() biasa dapat menyebabkan TLE. Untuk pengujian besar, gunakan sys.stdin untuk mengambil semua data dengan cepat.

import sys
data = sys.stdin.read().split()

Hitung Ulang vs Simpan di Cache

Menghitung ulang nilai yang sama berulang kali membuang waktu. Menyimpan dalam cache sebuah hasil, seperti jumlah prefiks, dapat mengubah pekerjaan O(n) yang berulang menjadi O(1).

Perkirakan Sebelum Mengirimkan

Temukan TLE sebelum penguji menemukannya. Kalikan kompleksitas Anda dengan n dan bandingkan dengan 10^8. Jika hasilnya melebihi batas, rancang ulang sebelum mengirimkan solusi.

Temukan Hambatan Utama

Saat TLE terjadi, cari perulangan bersarang terdalam dan tanyakan berapa kali perulangan itu benar-benar berjalan. Hampir selalu, di situlah waktu terbuang.

Turunkan Kompleksitas

Memperbaiki TLE biasanya berarti menggunakan algoritma yang lebih baik, bukan melakukan penyesuaian kecil. Ganti pemindaian bersarang dengan pengurutan, peta hash, atau dua penunjuk.

Penyesuaian Konstanta Dilakukan Terakhir

Jika Anda hanya sedikit melewati batas, perbaikan faktor konstan seperti I/O yang lebih cepat mungkin dapat membantu. Namun, pastikan terlebih dahulu bahwa Big-O-nya sudah benar.

Pemeriksaan Singkat

Diagnosis perlambatan tersembunyi ini.

Rangkuman

TLE berarti benar tetapi lambat. Cari perulangan tersembunyi, ganti daftar dengan himpunan, gunakan join sekali untuk string, dan turunkan Big-O. Perkirakan terlebih dahulu, lalu kirimkan solusi. 🛠️

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengapa TLE Terjadi dan Cara Menemukannya” gratis?

Ya — teks lengkap “Mengapa TLE Terjadi dan Cara Menemukannya” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Competitive Programming Academy, upgrade ke CoddyKit PRO. Kursus Competitive Programming Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengapa TLE Terjadi dan Cara Menemukannya”?

Menemukan loop tersembunyi yang menghabiskan anggaran waktu Kamu berlatih Competitive Programming Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Competitive Programming Academy?

Tidak diperlukan pengalaman sebelumnya. Competitive Programming Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Mengapa TLE Terjadi dan Cara Menemukannya” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Competitive Programming Academy ini?

Ya. Setiap pelajaran Competitive Programming Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Menghitung Operasi dengan Big-O
  2. Aturan Praktis 10^8
  3. Membaca Batasan, Memilih Kompleksitas
  4. Mengapa TLE Terjadi dan Cara Menemukannya
← Kembali ke Competitive Programming Academy