หลักคร่าว ๆ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- นับการดำเนินการด้วย Big-O
- หลักคร่าว ๆ 10^8
- อ่านข้อจำกัดและเลือกความซับซ้อน
- เหตุใดจึงเกิด TLE และจะสังเกตได้อย่างไร