แหล่งฝึกฝน: https://cses.fi/problemset/
โจทย์ (Task 1671):
มีเมือง ( n ) เมือง และเส้นทางบิน ( m ) เส้นทาง จงหาระยะทางที่สั้นที่สุดจากเมืองที่ 1 ไปยังทุกเมือง
แหล่งอ้างอิง: https://cses.fi/book/book.pdf
ประกาศเป็น `priority_queue
ใส่เงื่อนไข `if (d > dist[u]) continue;` เพื่อป้องกันการประมวลผลซ้ำในโหนดที่ระยะทางแย่กว่า
ตั้งค่าเริ่มต้นเป็น 0 สำหรับจุดเริ่ม และ ( \infty ) (ประมาณ 1e18) สำหรับโหนดอื่น
ใช้ `vector
แหล่งอ้างอิง: https://usaco.guide/CPH.pdf
โจทย์ (Task 1672):
มีคำถาม ( q ) ข้อ แต่ละข้อถามระยะทางที่สั้นที่สุดระหว่างเมือง ( a ) และ ( b ) โดย ( n \le 500 ) และ ( q \le 10^5 )
แหล่งอ้างอิง: https://cses.fi/book/book.pdf
แหล่งอ้างอิง: https://www.geeksforgeeks.org/floyd-warshall-algorithm-dp-16/
โจทย์ (Task 1673):
ต้องการหาทางที่ได้ "คะแนนรวมสูงสุด" จากโหนด 1 ไป ( n ) โดยกราฟมีน้ำหนักได้ทั้งบวกและลบ
แหล่งอ้างอิง: https://cses.fi/book/book.pdf
ขั้นตอนการตรวจสอบ:
แหล่งอ้างอิง: https://roadmap.sh/datastructures-and-algorithms
โจทย์ (Task 1197):
จงหาว่ามี Negative Cycle ในกราฟหรือไม่ หากมี ให้แสดงผลโหนดที่อยู่ในวงรอบนั้น
แหล่งอ้างอิง: https://cses.fi/book/book.pdf
ใช้ `ios::sync_with_stdio(0); cin.tie(0);` เสมอเพราะ Input กราฟมักมีขนาดใหญ่
จองอาร์เรย์ขนาดใหญ่แบบ Global ดีกว่าประกาศ Vector ในฟังก์ชัน
ใช้ค่าที่ใหญ่พอ เช่น `1e18` ( (10^{18}) ) สำหรับ `long long` เพื่อป้องกันระยะทางหลอก
ระวังเมืองที่มีถนนเชื่อมหาตัวเองและมีน้ำหนักติดลบ (Self-negative-cycle)
แหล่งอ้างอิง: https://roadmap.sh/datastructures-and-algorithms
ลำดับแนะนำ:
"Happy Coding!"
URL: https://cses.fi/problemset/list/