Competitive Programming Academy · Pelajaran

Adjacency List dari Input

Membangun graf yang diberikan dalam kontes

Pelajaran 1 dari 413 langkah

Adjacency List dari Input adalah pelajaran Competitive Programming Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.

Apa Sebenarnya Graf Itu

Graf hanyalah titik-titik yang disebut simpul dan dihubungkan oleh garis yang disebut sisi. Kota-kota yang dihubungkan oleh jalan adalah contoh graf yang sudah Anda kenal. 🗺️

Simpul dan Sisi

Setiap simpul adalah sesuatu, dan setiap sisi menyatakan bahwa dua simpul saling terhubung. Dalam kompetisi pemrograman, simpul biasanya diberi nomor dari 1 hingga n.

Daftar Ketetanggaan

Penyimpanan yang umum digunakan dalam kompetisi adalah daftar ketetanggaan: untuk setiap simpul, simpan daftar tetangga langsungnya.

adj = [[] for _ in range(n + 1)]

Mengapa Bukan Matriks

Matriks menggunakan memori sebesar n kuadrat, yang meningkat drastis untuk n yang besar. Daftar ketetanggaan hanya menyimpan sisi yang benar-benar ada, sehingga dapat menangani ukuran besar.

Membaca Baris Pertama

Sebagian besar masukan dimulai dengan dua bilangan: n simpul dan m sisi. Baca keduanya terlebih dahulu agar Anda tahu berapa banyak sisi yang harus diharapkan.

n, m = map(int, input().split())

Satu Sisi per Baris

Masing-masing dari m baris berikutnya memberikan pasangan u v. Satu sisi tersebut berarti u dan v terhubung secara langsung.

u, v = map(int, input().split())

Tak Berarah Berarti Dua Arah

Untuk sisi tak berarah, tambahkan hubungan ke kedua arah. Anda dapat berjalan dari u ke v dan dari v ke u.

adj[u].append(v)
adj[v].append(u)

Berarah Berarti Satu Arah

Untuk sisi berarah, simpan hanya hubungan dari u ke v. Bacalah pernyataan soal dengan teliti untuk mengetahui jenis yang Anda miliki.

adj[u].append(v)

Membangunnya dalam Perulangan

Lakukan perulangan sebanyak m kali, baca setiap pasangan, lalu isi daftarnya. Setelah perulangan selesai, daftar ketetanggaan Anda memuat seluruh graf.

for _ in range(m):
    u, v = map(int, input().split())
    adj[u].append(v)
    adj[v].append(u)

Indeks Dimulai dari 1 vs 0

Jika simpul dimulai dari 1, buat ukuran daftar sebesar n ditambah 1 agar indeks n valid. Kesalahan dalam pengindeksan menyebabkan galat yang tidak terlihat.

Mengunjungi Tetangga Simpul

Setelah graf dibangun, penelusuran menjadi mudah: lakukan perulangan pada daftar ketetanggaan sebuah simpul untuk mencapai setiap tetangga dalam satu langkah.

for nb in adj[u]:
    print(nb)

Pemeriksaan Singkat

Anda membaca sisi tak berarah u v. Apa yang Anda simpan?

Ringkasan

Sekarang Anda dapat membangun graf sebagai daftar ketetanggaan: baca n dan m, lakukan perulangan pada sisi, lalu tambahkan kedua arah jika sisinya tak berarah. 🎉

Gratis untuk memulai

Belajar Python dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Adjacency List dari Input” gratis?

Ya — teks lengkap “Adjacency List dari Input” 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 “Adjacency List dari Input”?

Membangun graf yang diberikan dalam kontes 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 1 dari 4.

Berapa lama pelajaran “Adjacency List dari Input” 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. Adjacency List dari Input
  2. BFS untuk Jalur Terpendek Tanpa Bobot
  3. DFS, Rekursi & Stack Iteratif
  4. Komponen Terhubung & Flood Fill
← Kembali ke Competitive Programming Academy