JavaRush /จาวาบล็อก /Random-TH /ปัญหาอัลกอริทึม
Joysi
ระดับ

ปัญหาอัลกอริทึม

เผยแพร่ในกลุ่ม
จุดแข็งของ JavaRush คือการฝึกฝนมากมาย ซึ่งช่วยได้อย่างมากในการรวมเนื้อหาที่ให้ในการบรรยาย ที่นี่ 95% ของงานมุ่งเน้นไปที่การฝึกเขียนแอปพลิเคชันหรือโปรแกรมเซิร์ฟเวอร์ เป็นการดีที่จะฝึกฝนสื่อที่นำเสนอในการบรรยาย (คอลเลกชัน ข้อมูลทั่วไป อาร์เรย์ มัลติเธรด ฯลฯ) หรือค่อยๆ สร้างและปรับโครงสร้างปัญหากับหลายชั้นเรียนและการโต้ตอบของชั้นเรียนต่างๆ (ชั้นเรียนใหญ่) มีปัญหาอัลกอริธึมเช่นการสูดอากาศบริสุทธิ์ (ทุกคนอาจจำโบนัสสุดท้ายของระดับ 20 โดยการสร้างรายการต้นไม้ไบนารี) แต่จำนวนไม่มาก หลักสูตรนี้เน้นไปที่การฝึกปฏิบัติแบบประยุกต์ ไม่ใช่อัลกอริธึม (ซึ่งต้องใช้ทฤษฎีไซเบอร์เนติกส์และคณิตศาสตร์มากกว่ามาก) สำหรับผู้ที่ค่อนข้างคล้ายกับฉันในแง่ของบางครั้งฟุ้งซ่านเล็กน้อยและฝึกฝนทักษะทางคณิตศาสตร์ในการเขียนโปรแกรมมากขึ้น ฉันขอแนะนำ http://codeforces.com/ ปัญหาที่สามารถแก้ไขได้ (รวมถึงภาษาการเขียนโปรแกรมอื่นๆ) ใน Java 7/8 แหล่งรวมปัญหา (นอกเหนือจากนั้น ยังมีการจัดการแข่งขันด้วย) มีอยู่ที่ http://codeforces.com/problemset นอกจากนั้นยังมีการแข่งขัน ฯลฯ 100% ทำการตัดสินใจในไฟล์ Java ไฟล์เดียวโดยใช้แพ็คเกจเริ่มต้น (นั่นคือ ไม่มีแพ็คเกจที่ระบุในไฟล์ Java) และจุดเริ่มต้นคือ public static void main(String[] args) ฉันไม่ได้ลองใช้ตัวเลือกอื่นในการส่งวิธีแก้ปัญหา ฉันจะยกตัวอย่าง ปัญหา ที่ง่ายที่สุด (http://codeforces.com/problemset/problem/1/A) พร้อมวิธีแก้ปัญหา (ถือว่าเป็นตัวอย่างทดสอบ) เพื่อให้คุณสามารถใช้เป็นช่องว่างเมื่อแก้ไขผู้อื่น : import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class task1A { /* Театральная площадь в столице Берляндии представляет собой прямоугольник n × m метров. По случаю очередного юбилея города, было принято решение о замощении площади квадратными гранитными плитами. Каждая плита имеет размер a × a. Какое наименьшее количество плит понадобится для замощения площади? Разрешено покрыть плитами большую поверхность, чем театральная площадь, но она должна быть покрыта обязательно. Гранитные плиты нельзя ломать or дробить, а разрешено использовать только целиком. Границы плит должны быть параллельны границам площади. Входные данные В первой строке записано три целых натуральных числа n, m и a (1 ≤ n, m, a ≤ 10^9). Выходные данные Выведите искомое количество плит. */ public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String[] s=reader.readLine().split(" "); long n = Long.parseLong(s[0]); long m = Long.parseLong(s[1]); long a = Long.parseLong(s[2]); reader.close(); long cntSide1 = n/a + (int) Math.signum(n%a); long cntSide2 = m/a + (int) Math.signum(m%a); System.out.print(cntSide1*cntSide2); } } หลังจากสร้างโปรแกรมและทดสอบด้วยตัวเองแล้ว ให้อัพโหลดไฟล์ขึ้นเว็บไซต์ การตรวจสอบจะเริ่มขึ้นเร็วๆ นี้ และคุณสามารถรับชมกระบวนการได้ นอกจากนี้ คุณยังสามารถดูข้อมูลการทดสอบในระหว่างกระบวนการตรวจสอบ และใช้เพื่อแก้ไขโปรแกรมได้หากการทดสอบข้อใดข้อหนึ่งล้มเหลว ป.ล. หากฝ่ายบริหารพิจารณาว่าเป็นโฆษณาสำหรับทรัพยากรบุคคลที่สาม คุณสามารถลบออกได้ แม้ว่าโดยส่วนตัวแล้วฉันคิดว่าการออกกำลังกายเพิ่มเติมสำหรับสมองในแง่ของอัลกอริธึมจะไม่เจ็บ PSS หากมีแหล่งข้อมูลอื่นที่คล้ายคลึงกัน โปรดเขียนความคิดเห็น (ควรเป็นแบบขยาย - ข้อดี ข้อเสีย และตัวอย่างปัญหาการทดสอบที่แก้ไขแล้ว เพื่อการเริ่มต้นที่ง่ายดายสำหรับผู้อื่น)
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION