0Pricing
Competitive Programming Academy · บทเรียน

หลักคร่าว ๆ 10^8

เชื่อมจำนวนการดำเนินการกับขีดจำกัดเวลา

หลักคร่าว ๆ 10^8 เป็นบทเรียน Competitive Programming Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Competitive Programming Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Competitive Programming Academy มีบทเรียนทั้งหมด 4 บทเรียน

งบประมาณมหัศจรรย์

โดยทั่วไประบบตรวจคำตอบออนไลน์จะทำการดำเนินการง่าย ๆ ได้ประมาณ 10^8 ครั้งต่อวินาที ตัวเลขนี้คืองบประมาณการทำงานสำหรับทั้งโปรแกรมของคุณ 💡

จากจำนวนขั้นตอนสู่จำนวนวินาที

คูณจำนวนการดำเนินการด้วยงานที่ทำในแต่ละขั้นตอน แล้วเปรียบเทียบกับ ขีดจำกัดเวลา หากจำนวนขั้นตอนอยู่ภายในงบประมาณ คุณก็น่าจะผ่าน

เชิงเส้นใช้ทรัพยากรน้อย

การไล่ตรวจแบบ O(n) เมื่อ n = 10^6 ใช้เพียงหนึ่งล้านขั้นตอน ซึ่งต่ำกว่างบประมาณมาก วิธีแก้แบบเชิงเส้นมักผ่านได้อย่างสบาย

n log n ปลอดภัย

เมื่อ n = 10^6 การเรียงลำดับแบบ O(n log n) ใช้ประมาณ 2 เท่าของ 10^7 ขั้นตอน ซึ่งยังอยู่ในงบประมาณหนึ่งวินาทีได้สบาย ดังนั้นการเรียงลำดับจึงไม่ค่อยเป็นคอขวด

เชิงกำลังสองมีเพดาน

วิธีแก้แบบ O(n^2) จะใช้งบประมาณเกือบเต็มเมื่อ n = 10^4 ซึ่งมีค่าใช้จ่าย 10^8 ขั้นตอน หลังจากนั้นความซับซ้อนเชิงกำลังสองจะเริ่มเกินขีดจำกัดเวลา

เชิงกำลังสามใช้ได้กับ n เล็กเท่านั้น

วิธีแก้แบบ O(n^3) จะยังทำงานได้ถึงประมาณ n = 500 เท่านั้น เมื่อนำค่านี้มายกกำลังสามจะได้ประมาณ 10^8 ขั้นตอน ซึ่งอยู่ตรงขอบของงบประมาณ

เอ็กซ์โพเนนเชียลใช้ได้กับขนาดเล็กเท่านั้น

O(2^n) จะเพิ่มเป็นสองเท่าในแต่ละขั้นตอน จึงใช้ได้เฉพาะกับ n ขนาดเล็กประมาณ 20 ถึง 25 เท่านั้น หลังจากนั้นจำนวนการดำเนินการจะพุ่งเกิน 10^8

Python มีต้นทุนเพิ่ม

Python ทำงานต่อขั้นตอนได้ช้ากว่า ดังนั้นสำหรับลูปที่ทำงานหนัก ให้คิดว่างบประมาณใกล้เคียง 10^7 มากกว่า โปรดประเมินอย่างเผื่อไว้เมื่อข้อจำกัดดูเฉียดขีดจำกัด

ระวังค่าแฝงคงที่

กฎ 10^8 นับเฉพาะขั้นตอนง่าย ๆ การทำงานหนักภายในลูป เช่น การสร้างข้อความ จะเพิ่ม ตัวคูณคงที่ ซึ่งทำให้งบประมาณจริงของคุณลดลง

อ่านขีดจำกัด

ขีดจำกัดเวลามักอยู่ที่ 1 หรือ 2 วินาที ขีดจำกัด 2 วินาทีทำให้งบประมาณ เพิ่มเป็นประมาณสองเท่า จึงมีเวลาเผื่อเพิ่มขึ้นเล็กน้อย

ประเมินก่อนเริ่มเขียน

แทนค่า n ลงในความซับซ้อนของคุณเสมอ แล้วเปรียบเทียบกับ 10^8 ก่อน การตรวจสอบความสมเหตุสมผลอย่างรวดเร็วนี้ช่วยป้องกันไม่ให้คุณเขียนวิธีแก้ที่ไม่มีทางผ่าน

ตรวจสอบอย่างรวดเร็ว

ลองนำกฎ 10^8 ไปใช้

ทบทวน

ตอนนี้คุณเชื่อมโยงจำนวนการดำเนินการกับเวลาได้แล้ว: ประมาณ 10^8 ครั้งต่อวินาที วิธีแบบเชิงเส้นและ n log n ปลอดภัย วิธีแบบกำลังสองมีเพดานใกล้ 10^4 และคุณรู้จักตรวจสอบก่อนเขียนโค้ด ✅

คำถามที่พบบ่อย

บทเรียน “หลักคร่าว ๆ 10^8” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “หลักคร่าว ๆ 10^8” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Competitive Programming Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Competitive Programming Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “หลักคร่าว ๆ 10^8”

เชื่อมจำนวนการดำเนินการกับขีดจำกัดเวลา คุณปฏิบัติ Competitive Programming Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Competitive Programming Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Competitive Programming Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “หลักคร่าว ๆ 10^8” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Competitive Programming Academy นี้ได้ไหม

ได้ บทเรียน Competitive Programming Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. นับการดำเนินการด้วย Big-O
  2. หลักคร่าว ๆ 10^8
  3. อ่านข้อจำกัดและเลือกความซับซ้อน
  4. เหตุใดจึงเกิด TLE และจะสังเกตได้อย่างไร
← กลับไปที่ Competitive Programming Academy