Új hozzászólás Aktív témák

  • Tottu

    senior tag

    Üdv mindenkinek!

    Egy kis segítségre lenne szükségem az alábbi programmal kapcsolatban:
    Olyan programot kell írni, ami adott S szóra(max 2000 karakter) és k értékre kiszámítja a leghosszabb olyan kezdőszelet hosszát, amely legfeljebb k betű törlésével tükörszóvá tehető! A program adjon is meg egy ilyen törlést.
    Pl.:
    Bemenet
    2
    emeletes

    Kimenet
    7 2
    2 6

    A kimenet első sorának első száma a kezdőszelet hossza, a második szám pedig, hogy hány karakter törlésével tehető tükörszóvá. A második sor pedig a törlendő karakterek sorszáma.

    Találtam, hozzá egy jó anyagot ami első ránézésre jónak tűnt így egyből neki is fogtam: megírtam a progit, ami a fent említett példára tökéletes működött, majd én is csináltam pár példát amiben volt már egy hibás kimenet. Gondoltam leteszteltetem élesben és kaptam rá 2 pontot a 16-ból ami elég karcsú(min. 8 kell). Ezután jöttem rá, hogy teljessen rossz úton indultam el.

    Nah most kellene egy másik kiinduló pont, azonban nem tudom hogyan lehetne egy optimális megoldást találni, ugyanis van idő és memória korlát is: 0.2s időkorlát, és 32MB memória áll a rendelkezésre. Elméletileg Dinamikus programozással kell megoldani, ami egy 2000x2000-es táblából(tömb-ből) áll, amit úgy töltünk fel, hogy az előző részproblémák eredményeit felhaszáljuk.
    Ha vkinek van ötlete akkor azt szívessen várom! :R

Új hozzászólás Aktív témák

Hirdetés