megvan a megoldas azota, az alapotlet ugyanaz mint amit mondtam, hogy
ket reszre szedjuk a cuccot, csak nem azokat kell eltarolni, hanem:
bal oldal:
bal oldal osszes lehetoseget vegignezed, es felirod hogy hany fele
keppen lehet 0-bol az i-edik ?-be jutni
mivel csak paritas erdekel, ezert tudok ebbol csinalni egy (L+1)-bites
szamot (ha L ? van a bal oldalon): az i. bit az 1, ha paratlan fele
keppen lehet az i. ?-be jutni, es az L. bitet mindenkeppen 1-re veszed
ezt a kapott szamot be kell dobni valami listaba (en azt csinaltam
hogy van egy list1[] tombom, amit a kapott szamodik helyen novelem)
jobb oldal:
jobb oldal osszes lehetoseget vegignezed, es felirod hogy hany fele
keppen lehet a bal oldal i-edik ?-bol 1-be jutni
ebbol is (L+1) bites szam, a 0..L-1 bitek ezeknek a paritasa, az L.
bit pedig annak hogy hany fele keppen lehet 0-bol 1-be eljutni ugy
hogy bal oldali ?-eket mind kihagyom
ez miert jo?
ha a bal oldalon X szamot irtam fel, jobb oldalon Y-t, akkor X&Y-ben
levo bitek azt jelentik hogy ha az i. ?-re leptem a bal oldalon
utoljara, akkor paratlan/paros sok fele ut van
vagyis ossz akkor van paros sok ut, ha X&Y-ben az 1-esek szama paros
na szoval van ket lista X-ekrol meg Y-okrol (mindketto kb 65000
hosszu), az a kerdes hogy hany olyan X,Y par van, amire X&Y-ban paros
sok 1-es bit van
ez meg megoldhato konnyen (trukkos de nem nehez), ezen gondolkozzatok :P
lekodoltam, bekuldtem, elfogadta, kod csatolva annak aki nem akar
gondolkodni rajta (a listmagic fuggveny az ami csinalja azt a reszt)
(a kodnak csak az elso fele szamit a 145. sorig, azutan ilyen
automatikusan generalt tesztkod)
ngg