คำถามติดแท็ก subsequences

1
การทำซ้ำ (การกระจาย) ที่ยาวที่สุดที่ตามมาในสตริง
คำชี้แจงปัญหาที่ไม่เป็นทางการ: รับสตริงเช่นเราต้องการให้สีตัวอักษรสีแดงและบางตัวอักษรสีน้ำเงิน (และบางส่วนไม่ได้เลย) เช่นการอ่านตัวอักษรสีแดงจากซ้ายไปขวาให้ผลเช่นเดียวกับการอ่าน ตัวอักษรสีน้ำเงินเท่านั้นACCABBABACCABBABACCABBAB ในตัวอย่างเราสามารถระบายสีพวกมันได้ดังนี้: ACCABBABACCABBABA\color{blue}{C}\color{red}{CAB}B\color{blue}{AB} ดังนั้นเราจึงบอกว่าเป็น subsequence ซ้ำC C B B B นอกจากนี้ยังมีการวนซ้ำซ้ำที่ยาวที่สุด (ซึ่งง่ายต่อการตรวจสอบ)CBCABCABCCA B B A BACCABBABACCABBAB เราสามารถคำนวณส่วนประกอบซ้ำที่ยาวที่สุดได้อย่างมีประสิทธิภาพหรือไม่ คำถามทางการ: มันยากที่จะตัดสินใจว่าจะให้สตริงกับหรือไม่ว่ามีการเรียงตัวของความยาวkซ้ำอยู่ในสตริงหรือไม่?kkkkkk ถ้าเป็นเช่นนั้น: ปัญหาใดที่สามารถลดปัญหานี้ได้ ถ้าไม่: อัลกอริทึมที่มีประสิทธิภาพคืออะไร? (เห็นได้ชัดว่าอัลกอริธึมนี้สามารถใช้ในการคำนวณการวนซ้ำที่ยาวที่สุด) คำถามโบนัส: จะมีการเรียงลำดับความยาวหากขนาดของตัวอักษรถูกล้อมด้วยค่าคงที่หรือไม่?n / 2 - o ( n )n/2−o(n)n/2 - o(n) (สิ่งนี้เป็นที่รู้จักกันว่าเป็นจริงสำหรับตัวอักษรไบนารี) แก้ไข 2: คำตอบเชิงลบเพื่อโบนัสคำถามที่เป็นที่รู้จักกันไปแล้วสำหรับตัวอักษรที่มีขนาดอย่างน้อย5ในความเป็นจริงสำหรับตัวอักษรขนาดมีสตริงกับ subsequences ซ้ำที่ยาวที่สุดของความยาวของเพียง1/2}) สตริงสุ่มเพียงพอที่จะแสดงสิ่งนี้ ผลลัพธ์มีอยู่แล้ว แต่ฉันมองข้ามไป555ΣΣΣO(n⋅Σ−1/2)O(n·Σ−1/2)O(n · Σ^{-1/2}) …

3
มีอัลกอริทึมที่ค้นหาการเรียงลำดับขนาดที่สามในเวลาหรือไม่?
คำถามนี้ถูกย้ายจาก Theoretical Computer Science Exchange Exchange เนื่องจากสามารถตอบได้ใน Computer Science Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันต้องการที่จะพิสูจน์หรือหักล้างการดำรงอยู่ของอัลกอริทึมที่ได้รับอาร์เรย์ของจำนวนเต็มพบสามดัชนีและดังกล่าวว่าและ (หรือพบว่าไม่มีสามเท่า) ในเวลาเชิงเส้นi , j k i &lt; j &lt; k A [ i ] &lt; A [ j ] &lt; A [ k ]AAAฉัน, Ji,ji, jkkkฉัน&lt; j &lt; ki&lt;j&lt;ki < j < kA[i]&lt;A[j]&lt;A[k]A[i]&lt;A[j]&lt;A[k]A[i] < A[j] …

4
จะใช้อัลกอริทึมแบบโลภเพื่อค้นหาลำดับที่ไม่ลดลงใกล้เคียงกับลำดับที่ได้อย่างไร
a1,…,ana1,…,ana_1, \ldots, a_n000lllaiaia_ibibib_i000lllbibib_iสูงสุด( | a1- ข1| ,…, | n- ขn| )max(|a1−b1|,…,|an−bn|)\max(|a_1-b_1|, \ldots, |a_n-b_n|)ขผมbib_iO ( n l√4)O(nl4)O(n\sqrt[4]{l}) ฉันไม่มีเงื่อนงำอย่างจริงใจว่าจะเริ่มแก้ไขคำถามนี้อย่างไร ดูเหมือนว่าฉันจะถามคำถามเกี่ยวกับการเขียนโปรแกรมแบบไดนามิก แต่อาจารย์บอกว่าควรแก้ไขได้โดยใช้อัลกอริทึมโลภ มันคงจะดีมากถ้ามีคนชี้ให้ฉันไปในทิศทางที่ถูกต้องด้วยการบอกใบ้เล็ก ๆ

1
ค้นหาการวนซ้ำที่ยาวที่สุด
กำหนดสตริงผมอยากจะหาที่ยาวที่สุดในการทำซ้ำ (อย่างน้อยสองครั้ง) subsequence นั่นคือผมอยากจะพบสตริงซึ่งเป็น subsequence (ที่ไม่จำเป็นต้องเป็นที่ต่อเนื่องกัน) ของเช่นว่าw' นั่นคือคือสตริงที่แบ่งครึ่งปรากฏเป็นสองเท่าในแถว โปรดทราบว่าคือองค์ประกอบของแต่ไม่จำเป็นต้องเป็นสตริงย่อยssswwwsssw=w′⋅w′w=w′⋅w′w=w' \cdot w' wwwwwwsss ตัวอย่าง: สำหรับ 'ababccabdc' มันจะเป็น 'abcabc' เพราะ 'abc' = 'abc' และ 'abc' จะปรากฏขึ้น (อย่างน้อย) สองครั้งใน 'ababccabdc' สำหรับ 'addbacddabcd' ตัวเลือกหนึ่งคือ 'dddd' เพราะ 'dd' ปรากฏขึ้นสองครั้ง (ฉันไม่สามารถใช้ตัวอักษรเดียวกันหลาย ๆ ครั้งได้ แต่ที่นี่ฉันมี 4 'd ดังนั้นมันก็โอเค) แต่มันก็ดีกว่า 4 ความยาว 8: 'abcdabcd' เนื่องจาก 'abcd' เป็นซับสตริงของ 'addbacddabcd' …

1
ค้นหารูปแบบการทำซ้ำที่ยาวที่สุดในสตริง
ฉันกำลังมองหาอัลกอริทึมที่มีประสิทธิภาพเพื่อค้นหารูปแบบการทำซ้ำที่ยาวที่สุดในสตริง ตัวอย่างเช่นพิจารณาสตริงตัวเลขต่อไปนี้: 5431428571428571428571428571427623874534. อย่างที่คุณเห็น142857142857คือรูปแบบที่ยาวที่สุดซึ่งซ้ำกันสองสามครั้ง (อย่างน้อยสองครั้ง) ในสตริงนี้ สตริงที่ซ้ำกันไม่ควรมีความคิดใด ๆ มากกว่ากำลังดุร้าย?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.