Author Topic: [IT 54] วิชา Pre Programming สำหรับน้อง IT'54 มาแล้วจ้า  (Read 61026 times)  Share 

0 Members and 5 Guests are viewing this topic.

Offline Chotipat Pornavalai

  • อาจารย์
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • ****
  • Posts: 1,216
  • Karma: +0/-0
คำแนะนำสำหรับคนที่ทำ CaesarV2 อยู่ครับ


1. ควรผ่าน CaesarV1 ให้ครบ 10 Test cases ก่อน
2. ควรเอา CaesarV1 มาเป็นส่วนหนึ่งของโปรแกรม CaesarV2 แต่ไม่ควรไปแก้ไข CaesarV1 โดยตรง แต่ควรให้ CaesarV1 เป็น Subchart หรือ Procedure ของ CaesarV2 และเวลาไปเพิ่มเติมอะไรก็ไปทำที่ Main Chart จะได้มั่นใจว่าไม่มีผลกระทบกับ CaesarV1 ที่ได้ทำถูกต้องไปแล้ว
My Blog (latest updated on 22 July 2010) - http://blog.it.kmitl.ac.th/chotipat

My Twitter: @chotipat

My Facebook: http://www.facebook.com/chotipat

Offline nuttikung

  • มือใหม่หัดเข้าไอที
  • *
  • Posts: 49
  • Karma: +0/-0
คำแนะนำสำหรับคนที่ทำ CaesarV2 อยู่ครับ


1. ควรผ่าน CaesarV1 ให้ครบ 10 Test cases ก่อน
2. ควรเอา CaesarV1 มาเป็นส่วนหนึ่งของโปรแกรม CaesarV2 แต่ไม่ควรไปแก้ไข CaesarV1 โดยตรง แต่ควรให้ CaesarV1 เป็น Subchart หรือ Procedure ของ CaesarV2 และเวลาไปเพิ่มเติมอะไรก็ไปทำที่ Main Chart จะได้มั่นใจว่าไม่มีผลกระทบกับ CaesarV1 ที่ได้ทำถูกต้องไปแล้ว


   ผมก็ทำแบบนั้นอยู่ครับ ติด Case4,5 เหมือนเดิม  ไม่รู้ว่าเกิดอะไรขึ้นครับ แหะๆ

Offline Chotipat Pornavalai

  • อาจารย์
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • ****
  • Posts: 1,216
  • Karma: +0/-0
คำแนะนำสำหรับคนที่ทำ CaesarV2 อยู่ครับ


1. ควรผ่าน CaesarV1 ให้ครบ 10 Test cases ก่อน
2. ควรเอา CaesarV1 มาเป็นส่วนหนึ่งของโปรแกรม CaesarV2 แต่ไม่ควรไปแก้ไข CaesarV1 โดยตรง แต่ควรให้ CaesarV1 เป็น Subchart หรือ Procedure ของ CaesarV2 และเวลาไปเพิ่มเติมอะไรก็ไปทำที่ Main Chart จะได้มั่นใจว่าไม่มีผลกระทบกับ CaesarV1 ที่ได้ทำถูกต้องไปแล้ว


   ผมก็ทำแบบนั้นอยู่ครับ ติด Case4,5 เหมือนเดิม  ไม่รู้ว่าเกิดอะไรขึ้นครับ แหะๆ


Test case ของ CaesarV2 จำนวน 5 case นั้นเป็น Test cases ของ CaesarV1 ด้วยครับ


ดังนั้นถ้าผ่าน CaesarV1 มาได้ครบทั้ง 10 case แล้ว แต่ไม่ผ่าน CaesarV2 ก็แสดงว่าเลือกค่า s ผิดสำหรับ test case นั้น

My Blog (latest updated on 22 July 2010) - http://blog.it.kmitl.ac.th/chotipat

My Twitter: @chotipat

My Facebook: http://www.facebook.com/chotipat

Offline TEST_SYSTEM

  • ไอทีเฟรชชี่
  • **
  • Posts: 50
  • Karma: +0/-0
  • Gender: Male
อาจารย์ครับ หนูมาลีv1 ผมลองทำแบบแปลง data ที่ได้มาให้ เป็นแบบกราฟอ่ะครับ แต่เก็บอยู่ใน array 2d

สมมติ input 2 2 1 2 3 4

พอมาแปลงจะได้

a=
[
 (-1 ,2  ,3  ,-1),
 (-1 ,-1 ,-1 ,4),
 (-1 ,-1 ,-1 ,4),
 (-1 ,-1 ,-1 ,-1)
]

>> จุด 1 ไป จุด 2 มีค่าเท่ากับ 2 /// จุด 1 ไป จุด 3 มีค่าเท่ากับ 3  // จุด 2 ไปจุด 4 มีค่า 4 // จุด 3 ไปจุด 4 มีค่า 4 // ตามที่รับมาจาก input


แล้วมาคำนวณหาระยะทางที่สั้นที่สุดโดยใช้ Dijkstra's_algorithm


คือผมลองหาคำอธิบาย + ตัวอย่าง source code ก็ลองจากอันนี้ >> http://renaud.waldura.com/doc/java/dijkstra/


ก็ลองทำดูครับ ผลก็ออกมาถูกครับ แต่ว่าในกรณีซับซ้อน(case 5) หรือ อย่างเช่น

3x3

1 1 1
1 3 1
1 2 0


ผลมันออกมาไม่ตรง


ผมมาถูกทางไหมครับ คือผมคิดว่า algorithm จากลิ้งบนเค้าถูกแล้ว แต่ว่ามาแปลงเป็น codeใน raptor ผมน่าจะพลาดเอง


 :t31:
« Last Edit: April 10, 2011, 09:33:38 PM by NuTKunG_NaKruB »

Offline Chotipat Pornavalai

  • อาจารย์
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • ****
  • Posts: 1,216
  • Karma: +0/-0
อาจารย์ครับ หนูมาลีv1 ผมลองทำแบบแปลง data ที่ได้มาให้ เป็นแบบกราฟอ่ะครับ แต่เก็บอยู่ใน array 2d

สมมติ input 2 2 1 2 3 4

พอมาแปลงจะได้

a=
[
 (-1 ,2  ,3  ,-1),
 (-1 ,-1 ,-1 ,4),
 (-1 ,-1 ,-1 ,4),
 (-1 ,-1 ,-1 ,-1)
]

>> จุด 1 ไป จุด 2 มีค่าเท่ากับ 2 /// จุด 1 ไป จุด 3 มีค่าเท่ากับ 3  // จุด 2 ไปจุด 4 มีค่า 4 // จุด 3 ไปจุด 4 มีค่า 4 // ตามที่รับมาจาก input


แล้วมาคำนวณหาระยะทางที่สั้นที่สุดโดยใช้ Dijkstra's_algorithm


คือผมลองหาคำอธิบาย + ตัวอย่าง source code ก็ลองจากอันนี้ >> http://renaud.waldura.com/doc/java/dijkstra/


ก็ลองทำดูครับ ผลก็ออกมาถูกครับ แต่ว่าในกรณีซับซ้อน(case 5) หรือ อย่างเช่น

3x3

1 1 1
1 3 1
1 2 0


ผลมันออกมาไม่ตรง


ผมมาถูกทางไหมครับ คือผมคิดว่า algorithm จากลิ้งบนเค้าถูกแล้ว แต่ว่ามาแปลงเป็น codeใน raptor ผมน่าจะพลาดเอง


 :t31:



จากข้อมูลที่ให้มา พอจะแนะนำได้ดังนี้ครับ



1. มาถูกทางแล้วที่ใช้ Dijkstra Algorithm :)
2. Matrix a ที่แปลงมาผิดครับ ยกตัวอย่างจาก Input ที่ยกมาให้ดู ต้องคิดว่าจุด 2 ไปจุด 1 มีค่า Cost เท่ากับ 1 และจุด 3 ไปจุด 1 มีค่า Cost เท่ากับ 1 และจุด 4 ไปจุด 2 มีค่า Cost เท่ากับ 2 และจุด 4 ไปจุด 3 มีค่า Cost เท่ากับ 3 ด้วยครับ


และที่โปรแกรมที่เราเขียนยังไม่ผ่าน Case5 เป็นเพราะว่าส่วนนึงของคำตอบของ Case5 นั้นจะมีการวิ่งจากขวาไปซ้าย (หรืออาจจะมีวิ่งขึ้นบนได้เช่นกัน)


แต่ Case1-4 มีแต่วิ่งไปทางขวาและลงด้านล่างไปหาจุดปลายทางอย่างเดียวครับ
My Blog (latest updated on 22 July 2010) - http://blog.it.kmitl.ac.th/chotipat

My Twitter: @chotipat

My Facebook: http://www.facebook.com/chotipat

Offline Chotipat Pornavalai

  • อาจารย์
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • ****
  • Posts: 1,216
  • Karma: +0/-0
กรณี 3x3 ที่ยกมานั้น ผมคิดว่าการแปลง Code จาก Java มาที่ Raptor น่าจะยังมีที่ผิดอยู่เพราะว่าเส้นทางการเดินทางที่ดีที่สุดยังคงเป็นซ้ายไปขวาและบนลงล่างอยู่ (ยังถือว่าไม่ซับซ้อน)


ดังนั้นค่า Matrix a ที่แปลงไม่ถูกต้องนั้น ไม่น่ามีผลกับตัวอย่าง 3x3 ที่ยกมาครับ
My Blog (latest updated on 22 July 2010) - http://blog.it.kmitl.ac.th/chotipat

My Twitter: @chotipat

My Facebook: http://www.facebook.com/chotipat

Offline Xel'naga

  • มือใหม่หัดเข้าไอที
  • *
  • Posts: 30
  • Karma: +0/-0
  • Gender: Male
ถามหนูมาลีอ่ะครับ ผมใช้Dijkstra เหมือนกันอ่ะครับ เทสคำตอบดูแล้ว มันก็ตรงอ่ะครับ แต่พอกดส่งแล้วมันขึ้นINCORRECT ทุกเคสเลยครับ ไม่ทราบว่าเป็นกับอะไร - -
ที่คิดได้ คือ
1.ค่า Distance ตอนแรก มันเยอะเกิน - -*(อันนี้ เล็งมันมาก)
2.รับอินพุตไม่ถูก
3.อื่นๆ ร้อยแปดพันเก้า ซึ่งมิอาจตรัสรู้ได้

ลอง เทสแบบ Redirect_input ดู task 1-4 ผลมันก็ออกมาตรงอ่ะครับ แต่ task5 รอนาน(มากๆๆๆๆๆ ยังเทสไม่เสร็จ สังเกตุว่า เก็บตัวแปรได้แค่ไม่กี่ชุดก็เกิดอาการช้าลงอย่างเห็นได้ชัด) - -

ขอคำแนะนำหน่อยครับ ไม่งั้นจะป้อนค่าส่งแบบตรงๆละ 555+
« Last Edit: April 10, 2011, 10:54:25 PM by Xel'naga »
ถาม Google = ความรู้เดิมๆ เก่าๆ
ถาม ผู้รู้         = ความรู้ใหม่ๆ ที่ดีกว่า

Offline Chotipat Pornavalai

  • อาจารย์
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • ****
  • Posts: 1,216
  • Karma: +0/-0
ถามหนูมาลีอ่ะครับ ผมใช้Dijkstra เหมือนกันอ่ะครับ เทสคำตอบดูแล้ว มันก็ตรงอ่ะครับ แต่พอกดส่งแล้วมันขึ้นINCORRECT ทุกเคสเลยครับ ไม่ทราบว่าเป็นกับอะไร - -
ที่คิดได้ คือ
1.ค่า Distance ตอนแรก มันเยอะเกิน - -*(อันนี้ เล็งมันมาก)
2.รับอินพุตไม่ถูก
3.อื่นๆ ร้อยแปดพันเก้า ซึ่งมิอาจตรัสรู้ได้

ลอง เทสแบบ Redirect_input ดู task 1-4 ผลมันก็ออกมาตรงอ่ะครับ แต่ task5 รอนาน(มากๆๆๆๆๆ ยังเทสไม่เสร็จ สังเกตุว่า เก็บตัวแปรได้แค่ไม่กี่ชุดก็เกิดอาการช้าลงอย่างเห็นได้ชัด) - -

ขอคำแนะนำหน่อยครับ ไม่งั้นจะป้อนค่าส่งแบบตรงๆละ 555+


1. ทราบได้อย่างไรว่า Case1-4 ผลออกมาตรงครับ??? แนะนำว่าให้ลองตัวอย่างจาก Sample Input ดูว่าได้ Output เป็น 7 หรือไม่ก่อนครับ


2. Case 5 ถ้า Implement Dijkstra แบบทั่วไป จะมีค่า BigO เป็น O(n^2) ดังนั้น จากจำนวน node (n) ของ Case 5 ซึ่งมี 900 nodes เทียบกับจำนวน node ของ Case4 ซึ่งมี 100 nodes จึงประมาณแบบคร่าวๆได้ว่า Case5 จะใช้เวลามากกว่า Case4 ได้ถึงประมาณ 81 เท่าตัวครับ




My Blog (latest updated on 22 July 2010) - http://blog.it.kmitl.ac.th/chotipat

My Twitter: @chotipat

My Facebook: http://www.facebook.com/chotipat

Offline Xel'naga

  • มือใหม่หัดเข้าไอที
  • *
  • Posts: 30
  • Karma: +0/-0
  • Gender: Male
เทียบคำตอบกับตัวอย่างแล้วครับ แต่ว่า มันไม่ time out มัน INCORRECT เลยอ่ะครับ
ถาม Google = ความรู้เดิมๆ เก่าๆ
ถาม ผู้รู้         = ความรู้ใหม่ๆ ที่ดีกว่า

Offline Chotipat Pornavalai

  • อาจารย์
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • ****
  • Posts: 1,216
  • Karma: +0/-0
เทียบคำตอบกับตัวอย่างแล้วครับ แต่ว่า มันไม่ time out มัน INCORRECT เลยอ่ะครับ


แสดงว่าโปรแกรมทำงานถูกต้องกับตัวอย่าง แต่ทำงานไม่ถูกต้องกับ Case1-5 ครับ พอจะบอกได้ไหมครับ ว่า Case1 ได้ Output เท่าไหร่


ลืมไปว่า Case1 คือตัวอย่างเลย ต้องได้ Output = 7
ไม่ทราบว่า Case2 ได้ Output เท่าไหร่ครับ


ถ้าทำตามตัวอย่างได้เท่ากับ 7 น่าจะทำ Case1 ได้ถูกแล้วนะครับ ควรจะได้อย่างน้อย 10 คะแนน ส่งโปรแกรมมาทาง Email ให้ผมละกันครับ


chotipat [at] it.kmitl.ac.th



« Last Edit: April 10, 2011, 11:26:38 PM by Chotipat Pornavalai »
My Blog (latest updated on 22 July 2010) - http://blog.it.kmitl.ac.th/chotipat

My Twitter: @chotipat

My Facebook: http://www.facebook.com/chotipat

Offline Xel'naga

  • มือใหม่หัดเข้าไอที
  • *
  • Posts: 30
  • Karma: +0/-0
  • Gender: Male
เทียบคำตอบกับตัวอย่างแล้วครับ แต่ว่า มันไม่ time out มัน INCORRECT เลยอ่ะครับ


แสดงว่าโปรแกรมทำงานถูกต้องกับตัวอย่าง แต่ทำงานไม่ถูกต้องกับ Case1-5 ครับ พอจะบอกได้ไหมครับ ว่า Case1 ได้ Output เท่าไหร่


ลืมไปว่า Case1 คือตัวอย่างเลย ต้องได้ Output = 7
ไม่ทราบว่า Case2 ได้ Output เท่าไหร่ครับ


ถ้าทำตามตัวอย่างได้เท่ากับ 7 น่าจะทำ Case1 ได้ถูกแล้วนะครับ ควรจะได้อย่างน้อย 10 คะแนน ส่งโปรแกรมมาทาง Email ให้ผมละกันครับ


chotipat [at] it.kmitl.ac.th


ส่งไปแล้วครับ :t18:
ถาม Google = ความรู้เดิมๆ เก่าๆ
ถาม ผู้รู้         = ความรู้ใหม่ๆ ที่ดีกว่า

Offline Chotipat Pornavalai

  • อาจารย์
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • ****
  • Posts: 1,216
  • Karma: +0/-0
แก้ Bug ให้แล้วครับ


ตรง Loop แรก GET ver[k, 2] ตรงช่อง Prompt ใส่ค่า k ใช่ไหมครับ ให้แก้เป็น "k" โดยการเติม " ครอบไปหน้าหลังด้วยครับ


แล้วลองส่งใหม่ดูใหม่ครับ  :43:


โปรแกรมทำงานได้เร็วดีนะครับ ผมส่งดูใช้เวลา Case5 แค่ 1.39 วินาที ไม่รู้ว่า Implement Dijkstra วิธีไหน ช่วยอธิบายหน่อยละกัน เพราะไล่ Code ที่เขียนมาคงไม่ไหวครับ ตัวแปรเต็มไปหมด  :t21:
My Blog (latest updated on 22 July 2010) - http://blog.it.kmitl.ac.th/chotipat

My Twitter: @chotipat

My Facebook: http://www.facebook.com/chotipat

Offline Chotipat Pornavalai

  • อาจารย์
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • ****
  • Posts: 1,216
  • Karma: +0/-0
คำแนะนำสำหรับคนที่ทำ CaesarV2 อยู่ครับ


1. ควรผ่าน CaesarV1 ให้ครบ 10 Test cases ก่อน
2. ควรเอา CaesarV1 มาเป็นส่วนหนึ่งของโปรแกรม CaesarV2 แต่ไม่ควรไปแก้ไข CaesarV1 โดยตรง แต่ควรให้ CaesarV1 เป็น Subchart หรือ Procedure ของ CaesarV2 และเวลาไปเพิ่มเติมอะไรก็ไปทำที่ Main Chart จะได้มั่นใจว่าไม่มีผลกระทบกับ CaesarV1 ที่ได้ทำถูกต้องไปแล้ว


   ผมก็ทำแบบนั้นอยู่ครับ ติด Case4,5 เหมือนเดิม  ไม่รู้ว่าเกิดอะไรขึ้นครับ แหะๆ


ลองทำกลับกันครับ เอาโปรแกรม  CaesarV2 มาปรับส่ง CaesarV1 ดูสิว่ายังส่งได้ 100 คะแนนอยู่หรือไม่ครับ


ถ้ายังได้อยู่ ก็แสดงว่า CaesarV2 เลือกค่า s ไม่ถูกต้องครับ


My Blog (latest updated on 22 July 2010) - http://blog.it.kmitl.ac.th/chotipat

My Twitter: @chotipat

My Facebook: http://www.facebook.com/chotipat

Offline Xel'naga

  • มือใหม่หัดเข้าไอที
  • *
  • Posts: 30
  • Karma: +0/-0
  • Gender: Male
แก้ Bug ให้แล้วครับ


ตรง Loop แรก GET ver[k, 2] ตรงช่อง Prompt ใส่ค่า k ใช่ไหมครับ ให้แก้เป็น "k" โดยการเติม " ครอบไปหน้าหลังด้วยครับ


แล้วลองส่งใหม่ดูใหม่ครับ  :43:


โปรแกรมทำงานได้เร็วดีนะครับ ผมส่งดูใช้เวลา Case5 แค่ 1.39 วินาที ไม่รู้ว่า Implement Dijkstra วิธีไหน ช่วยอธิบายหน่อยละกัน เพราะไล่ Code ที่เขียนมาคงไม่ไหวครับ ตัวแปรเต็มไปหมด  :t21:



ขอบคุณครับ มันพลาดแค่ตรงนั้นเองหรอครับ  :t31: :t13: ไล่หรอครับ 555+ เขียนเองยังมีโอกาศมึนๆเองเลยครับ




อ้างอิงจากhttp://myalgo.wordpress.com/category/graph-algorithms/shortest-path-algorithm/
ตัวแปร ver[x,y] ใช้เก็บค่าของแต่ละ vertex  lowest[y] ใช้เก็บค่าต่ำสุด
x = หมายเลขจุดยอดนั้นๆ
y=1.ตำแหน่ง vertex 2.ค่าของ vertex 3.สถานะ process ของ vertex 4.ค่า Distance 5.มันมาจาก vertex ไหน
ลูปแรกก็เซ็ทค่าของ vertex ให้ครบ แล้วก็เข้าลูปใหญ่ ในลูปใหญ่ก็มีลูปย่อย ไว้หา vertex ที่มีค่า Distance ต่ำสุดที่จะเอามาคิดครับ(และยังไม่ถูก process) แล้วก็ต่อจากลูปใช้ if เช็คว่าตำแหน่งที่จะไปต่อเป็นไปได้หรือไม่(บน ขวา ล่าง ซ้าย)ถ้าเป็นไปได้ก็ตั้งค่า distance และ preview ของปลายทางครับ ถ้าไม่ก็ข้าม แล้วก็ให้ vertex นั้นเปลี่ยนสถานะเป็น process แล้ว แล้วก็ ลูปเรื่อยๆ จนกว่าจะ process ครบทุกจุดยอดครับ ครบแล้วก็ output ค่าจุดสุดท้ายออกมาครับ
« Last Edit: April 11, 2011, 01:00:17 AM by Xel'naga »
ถาม Google = ความรู้เดิมๆ เก่าๆ
ถาม ผู้รู้         = ความรู้ใหม่ๆ ที่ดีกว่า

Offline nuttikung

  • มือใหม่หัดเข้าไอที
  • *
  • Posts: 49
  • Karma: +0/-0
คำแนะนำสำหรับคนที่ทำ CaesarV2 อยู่ครับ


1. ควรผ่าน CaesarV1 ให้ครบ 10 Test cases ก่อน
2. ควรเอา CaesarV1 มาเป็นส่วนหนึ่งของโปรแกรม CaesarV2 แต่ไม่ควรไปแก้ไข CaesarV1 โดยตรง แต่ควรให้ CaesarV1 เป็น Subchart หรือ Procedure ของ CaesarV2 และเวลาไปเพิ่มเติมอะไรก็ไปทำที่ Main Chart จะได้มั่นใจว่าไม่มีผลกระทบกับ CaesarV1 ที่ได้ทำถูกต้องไปแล้ว


   ผมก็ทำแบบนั้นอยู่ครับ ติด Case4,5 เหมือนเดิม  ไม่รู้ว่าเกิดอะไรขึ้นครับ แหะๆ


ลองทำกลับกันครับ เอาโปรแกรม  CaesarV2 มาปรับส่ง CaesarV1 ดูสิว่ายังส่งได้ 100 คะแนนอยู่หรือไม่ครับ


ถ้ายังได้อยู่ ก็แสดงว่า CaesarV2 เลือกค่า s ไม่ถูกต้องครับ


 ลองแล้วครับ V1 ก็เต็มครับ แต่ V2 ติด เคส 5 ชัวๆครับ ส่วนเคส4  แก้ไปแก้มาได้ แต่มันจะผิดเคส สองกับสามแทน เลย งงอ่ะครับ  เหอๆ

Offline Chotipat Pornavalai

  • อาจารย์
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • ****
  • Posts: 1,216
  • Karma: +0/-0
คำแนะนำสำหรับคนที่ทำ CaesarV2 อยู่ครับ


1. ควรผ่าน CaesarV1 ให้ครบ 10 Test cases ก่อน
2. ควรเอา CaesarV1 มาเป็นส่วนหนึ่งของโปรแกรม CaesarV2 แต่ไม่ควรไปแก้ไข CaesarV1 โดยตรง แต่ควรให้ CaesarV1 เป็น Subchart หรือ Procedure ของ CaesarV2 และเวลาไปเพิ่มเติมอะไรก็ไปทำที่ Main Chart จะได้มั่นใจว่าไม่มีผลกระทบกับ CaesarV1 ที่ได้ทำถูกต้องไปแล้ว


   ผมก็ทำแบบนั้นอยู่ครับ ติด Case4,5 เหมือนเดิม  ไม่รู้ว่าเกิดอะไรขึ้นครับ แหะๆ


ลองทำกลับกันครับ เอาโปรแกรม  CaesarV2 มาปรับส่ง CaesarV1 ดูสิว่ายังส่งได้ 100 คะแนนอยู่หรือไม่ครับ


ถ้ายังได้อยู่ ก็แสดงว่า CaesarV2 เลือกค่า s ไม่ถูกต้องครับ


 ลองแล้วครับ V1 ก็เต็มครับ แต่ V2 ติด เคส 5 ชัวๆครับ ส่วนเคส4  แก้ไปแก้มาได้ แต่มันจะผิดเคส สองกับสามแทน เลย งงอ่ะครับ  เหอๆ


แสดงว่า Algorithm เลือกค่า s ของแต่ละ Test case ยังเลือกค่าที่ควรเป็นได้ไม่ถูกต้อง แก้ต่อไปละกันครับ  :t21:
My Blog (latest updated on 22 July 2010) - http://blog.it.kmitl.ac.th/chotipat

My Twitter: @chotipat

My Facebook: http://www.facebook.com/chotipat

Offline nuttikung

  • มือใหม่หัดเข้าไอที
  • *
  • Posts: 49
  • Karma: +0/-0
คำแนะนำสำหรับคนที่ทำ CaesarV2 อยู่ครับ


1. ควรผ่าน CaesarV1 ให้ครบ 10 Test cases ก่อน
2. ควรเอา CaesarV1 มาเป็นส่วนหนึ่งของโปรแกรม CaesarV2 แต่ไม่ควรไปแก้ไข CaesarV1 โดยตรง แต่ควรให้ CaesarV1 เป็น Subchart หรือ Procedure ของ CaesarV2 และเวลาไปเพิ่มเติมอะไรก็ไปทำที่ Main Chart จะได้มั่นใจว่าไม่มีผลกระทบกับ CaesarV1 ที่ได้ทำถูกต้องไปแล้ว


   ผมก็ทำแบบนั้นอยู่ครับ ติด Case4,5 เหมือนเดิม  ไม่รู้ว่าเกิดอะไรขึ้นครับ แหะๆ


ลองทำกลับกันครับ เอาโปรแกรม  CaesarV2 มาปรับส่ง CaesarV1 ดูสิว่ายังส่งได้ 100 คะแนนอยู่หรือไม่ครับ


ถ้ายังได้อยู่ ก็แสดงว่า CaesarV2 เลือกค่า s ไม่ถูกต้องครับ


 ลองแล้วครับ V1 ก็เต็มครับ แต่ V2 ติด เคส 5 ชัวๆครับ ส่วนเคส4  แก้ไปแก้มาได้ แต่มันจะผิดเคส สองกับสามแทน เลย งงอ่ะครับ  เหอๆ


แสดงว่า Algorithm เลือกค่า s ของแต่ละ Test case ยังเลือกค่าที่ควรเป็นได้ไม่ถูกต้อง แก้ต่อไปละกันครับ  :t21:


 ง่า   ท้อแล้วครับ ฮ่าๆ  แต่ก็ส่งไปเรื่อยๆ ถ้าร้อยครั้งคงพักอ่าครับ 

Offline Chotipat Pornavalai

  • อาจารย์
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • ****
  • Posts: 1,216
  • Karma: +0/-0
คำแนะนำสำหรับคนที่ทำ CaesarV2 อยู่ครับ


1. ควรผ่าน CaesarV1 ให้ครบ 10 Test cases ก่อน
2. ควรเอา CaesarV1 มาเป็นส่วนหนึ่งของโปรแกรม CaesarV2 แต่ไม่ควรไปแก้ไข CaesarV1 โดยตรง แต่ควรให้ CaesarV1 เป็น Subchart หรือ Procedure ของ CaesarV2 และเวลาไปเพิ่มเติมอะไรก็ไปทำที่ Main Chart จะได้มั่นใจว่าไม่มีผลกระทบกับ CaesarV1 ที่ได้ทำถูกต้องไปแล้ว


   ผมก็ทำแบบนั้นอยู่ครับ ติด Case4,5 เหมือนเดิม  ไม่รู้ว่าเกิดอะไรขึ้นครับ แหะๆ


ลองทำกลับกันครับ เอาโปรแกรม  CaesarV2 มาปรับส่ง CaesarV1 ดูสิว่ายังส่งได้ 100 คะแนนอยู่หรือไม่ครับ


ถ้ายังได้อยู่ ก็แสดงว่า CaesarV2 เลือกค่า s ไม่ถูกต้องครับ


 ลองแล้วครับ V1 ก็เต็มครับ แต่ V2 ติด เคส 5 ชัวๆครับ ส่วนเคส4  แก้ไปแก้มาได้ แต่มันจะผิดเคส สองกับสามแทน เลย งงอ่ะครับ  เหอๆ


แสดงว่า Algorithm เลือกค่า s ของแต่ละ Test case ยังเลือกค่าที่ควรเป็นได้ไม่ถูกต้อง แก้ต่อไปละกันครับ  :t21:


 ง่า   ท้อแล้วครับ ฮ่าๆ  แต่ก็ส่งไปเรื่อยๆ ถ้าร้อยครั้งคงพักอ่าครับ 


Algorithm เลือกค่า s ที่คิดมาทำงานอย่างไร แน่ใจว่าทำงานได้ทุกกรณีหรือไม่ ถ้าคิดว่าทำงานได้ทุกกรณีแต่ยังไม่ผ่าน ก็แสดงว่าเขียนโปรแกรมผิด (ไม่เป็นไปตาม Algorithm ที่คิด)


แต่ถ้ามันผิดที่ Algorithm เอง ก็ต้องไปคิด Algorithm มาใหม่ครับ

My Blog (latest updated on 22 July 2010) - http://blog.it.kmitl.ac.th/chotipat

My Twitter: @chotipat

My Facebook: http://www.facebook.com/chotipat

Offline Chotipat Pornavalai

  • อาจารย์
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • ****
  • Posts: 1,216
  • Karma: +0/-0
แก้ Bug ให้แล้วครับ


ตรง Loop แรก GET ver[k, 2] ตรงช่อง Prompt ใส่ค่า k ใช่ไหมครับ ให้แก้เป็น "k" โดยการเติม " ครอบไปหน้าหลังด้วยครับ


แล้วลองส่งใหม่ดูใหม่ครับ  :43:


โปรแกรมทำงานได้เร็วดีนะครับ ผมส่งดูใช้เวลา Case5 แค่ 1.39 วินาที ไม่รู้ว่า Implement Dijkstra วิธีไหน ช่วยอธิบายหน่อยละกัน เพราะไล่ Code ที่เขียนมาคงไม่ไหวครับ ตัวแปรเต็มไปหมด  :t21:



ขอบคุณครับ มันพลาดแค่ตรงนั้นเองหรอครับ  :t31: :t13: ไล่หรอครับ 555+ เขียนเองยังมีโอกาศมึนๆเองเลยครับ




อ้างอิงจากhttp://myalgo.wordpress.com/category/graph-algorithms/shortest-path-algorithm/
ตัวแปร ver[x,y] ใช้เก็บค่าของแต่ละ vertex  lowest[y] ใช้เก็บค่าต่ำสุด
x = หมายเลขจุดยอดนั้นๆ
y=1.ตำแหน่ง vertex 2.ค่าของ vertex 3.สถานะ process ของ vertex 4.ค่า Distance 5.มันมาจาก vertex ไหน
ลูปแรกก็เซ็ทค่าของ vertex ให้ครบ แล้วก็เข้าลูปใหญ่ ในลูปใหญ่ก็มีลูปย่อย ไว้หา vertex ที่มีค่า Distance ต่ำสุดที่จะเอามาคิดครับ(และยังไม่ถูก process) แล้วก็ต่อจากลูปใช้ if เช็คว่าตำแหน่งที่จะไปต่อเป็นไปได้หรือไม่(บน ขวา ล่าง ซ้าย)ถ้าเป็นไปได้ก็ตั้งค่า distance และ preview ของปลายทางครับ ถ้าไม่ก็ข้าม แล้วก็ให้ vertex นั้นเปลี่ยนสถานะเป็น process แล้ว แล้วก็ ลูปเรื่อยๆ จนกว่าจะ process ครบทุกจุดยอดครับ ครบแล้วก็ output ค่าจุดสุดท้ายออกมาครับ



ยินดีด้วยครับ มันมี Bug แค่นั้นแหละครับ


การจัดการเกี่ยวกับ String ของ Raptor เหมือนยังมีปัญหาอยู่ บางครั้งยอมให้ Run (ตอนทดสอบที่เครื่องตัวเอง) บางครั้งก็ไม่ยอม (โดยเฉพาะตอนที่ Submit)





My Blog (latest updated on 22 July 2010) - http://blog.it.kmitl.ac.th/chotipat

My Twitter: @chotipat

My Facebook: http://www.facebook.com/chotipat

Offline NearOnline

  • นักศึกษาปริญญาตรี
  • พระเจ้าจอร์ช มันขุดได้ยอดมากเลย
  • *
  • Posts: 1,808
  • Karma: +0/-0
  • Gender: Male
ส่งแล้วผิด...แปลว่าเราเข้าใกล้ความสำเร็จเข้าไปเรื่อยๆนะครับ ;)