cade Posted February 29, 2004 Share Posted February 29, 2004 hello, $o=$_,s/[\W_]+/\./g,rename($o,$_)for grep!/^\.\.?$/,<*> 55 strokes ako ni trqbva samo za failove: $o=$_,s/[\W_]+/\./g,rename($o,$_)for grep!-d,<*> 48 strokes s malyk trick koito e potencialno opasen: $o=$_,s/[\W_]+/\./g,`mv $o $_`for grep!-d,<*> 45 strokes i nakraq rekursivno: /^(.*?)([^\/\n]+)$/,$p=$1,$o=$_=$2,s/[\W_]+/\./g,rename($p.$o,$p.$_)for `find *|tac` 84 strokes cheers! ps: btw: zashto ne e s fixiran font?! Link to comment Share on other sites More sharing options...
ov3rm4n Posted February 29, 2004 Author Share Posted February 29, 2004 Ми какво да кажа... Нямам думи. Рупам ряпа и си мълча... Вече няма да си го търся. Някой друг да дава. Link to comment Share on other sites More sharing options...
Godfather Posted February 29, 2004 Share Posted February 29, 2004 Ми какво да кажа... Нямам думи. Рупам ряпа и си мълча... Вече няма да си го търся. Някой друг да дава. Понеже и аз ще си "рупам ряпата", единственото, което ми остава е да вляза в незавидната роля на тестер , мухаха Още на пръв поглед може да се каже, че основен проблем при използването на mv командата в третия скрипт на cade е ситуацията с интервали в имената на файла, което налага промяната на: $o=$_,s/[\W_]+/\./g,`mv "$o" $_`for grep!-d,<*> вече 47, но се справя с проблема и пак си е рекордьор Ако ми остане време, ще се заровя за по-изчанчени ситуации Link to comment Share on other sites More sharing options...
cade Posted February 29, 2004 Share Posted February 29, 2004 huh, chuvstvam se leko vinoven a pyk i ne vijdam rqpa ne sym imal namerenie da vi otkazvam, naprotiv! tova s kavichkite e vqrno, makar che reshava chast ot sluchaite (naprimer " v imeto?). ... Link to comment Share on other sites More sharing options...
sasquatch Posted March 9, 2004 Share Posted March 9, 2004 Значи проблема е следния : имаме две крайни множества съответно с m и n елемента (m и n са цели положителни числа). Всеки елемент на двете множества е наредена двойка - съответно (p1,q1) и (p2,q2) където p1,q1,p2 и q2 са цели положителни числа. Елементите на тези две множества се образуват от друго едно множество с елементи (x,y,z) където x,y,z са цели положителни числа, така че p1=x и q1=y , p2=x и q2 = z. Елементите на множествата са сортирани във възходящ ред по стойностите на q1 и q2, числата p1 и p2 са уникални - тоест няма два елемента на първото множество за които p1 на първия елемент да е равно на p1 на втория елемент, аналогично и за второто множество (числата x са уникални и не се повтарят никога), елементите на множествата също са уникални - т.е. при тяхното образуване елеминираме еднаквите елементи (p1,q1) - за първото множество и (p2,q2) за второто. Освен това има един елемент (q3,q4) , q3 и q4 са праметри които също са цели положителни числа и са известни. Трябва да се образува едно ново множество с елементи r. За всеки два елемента на първото и второто множество за които е вярно q1=q3 и q2=q4 добаваяме по един елемент r=p1=p2 в новообразуваното множество (ясно е че за q1=q3 и q2=q4 , p1=p2). Възможно е множеството да бъде и празно.Така изказана тази задачка може и да изглежда малко абстрактна но не е. Представете си че двете множества всъщност са два индекса на една таблица от БД - p1 и p2 са id-та на записите, q1 и q2 са индексираните полета а q3 и q4 е един критерий по който търсим в тази таблица (примерно имаме таблица с информация за фирми където има полета id , държава и град и ние искаме да видим всички фирми които са от дадена държава и град).Всъщност тази задача е опростен случай не търсенето в таблица на БД. Естествено задачата може да се разшири и за k множества не само за две защото и полетата може да са k на брой (k е цяло >=1) и да искаме да търсим по всички тях едновременно. Има един частен случай в който k=1 и търсенето става само в едно множество но той е тривиален така че не представлява интерес (търсене само по един критерий не по два - q3 и q4). Случая в който някое от множествата в които търсим е празно (то всъщност ако едно е празно и другите ще са празни) също е тривиален защото тогава няма елементи които да отговарят на условията и новото множество също е празно (в таблицата на нашата БД няма записани никакви данни) - значи и той не е интересен.След един-два дена ще постна тука някакво решение на проблема ( или поне частично решение , ако до тогава го измисля ) Edit :"Елементите на множествата са сортирани във възходящ ред по стойностите на q1 и q2" - това всъщност не е задължително по-принцип като се замисля така че сортирайте ги ако искате Link to comment Share on other sites More sharing options...
sasquatch Posted March 11, 2004 Share Posted March 11, 2004 Ето тука едно решение на задачката ама е дървено, ще го модифицирам тея дни да е с двоично търсене Link to comment Share on other sites More sharing options...
ov3rm4n Posted March 11, 2004 Author Share Posted March 11, 2004 Е ти изби рибата, братче... Ние тука говорим за решения в рамките на 100 байта, ти изскочи с цяла програма... А аз се мъча като грешен дявол от сума ти време да го натъпча в един ред условието ти... и не успявам. Ако е за толкова дълго решение - проблем няма. Има хиляди. Link to comment Share on other sites More sharing options...
sasquatch Posted March 11, 2004 Share Posted March 11, 2004 E верно в 100 байта няма как да го натъпчеш ама не е и толкоз дълго. Ама явно аз нещо не съм разбрал - ние тука значи търсиме ловки задачи с къси решения - о.к. моя грешка.Все пак може да фърлите и едно око на решението на един приятел.Той счита че двата индекса вече са филтрирани по критерия и остава само да направи сечение на резултата (което в случая трябва да е ловко) и го прави много по-добре от мен (т.е. по-бързо за повече записи и съвпадения) overman съжалявам изобщо не съм искал да те засегна нещо или да се ебавам просто тая задачка ми попадана а тя има и известно практическо приложение - да речем търсене в html документи в които си си ембеднал javascript с въпросните индекси. Примерно имаш един каталог в html формат и искаш да има и търсене в него - и това е един начин - да си генерираш индекси предварително и после само да ги searchvash със script-a. Link to comment Share on other sites More sharing options...
sasquatch Posted June 19, 2004 Share Posted June 19, 2004 Кво ша кажетe за тоя if void CDialogProcessor::DetermineState(Event *event){ if(((event->m_nToolbarState == ISTATE_ARROW)) && (event->m_nEventType == E_MOUSE_L_UP) && (m_nState != EMODE_MOVE_BY_MOUSE) && (m_nState != EMODE_MANIPULATE_COPY) && (m_nState != EMODE_DRAW_SWEEP)){ m_nState = EMODE_REDRAW_FRAME; } else if((event->m_nToolbarState == ISTATE_DOT) && (event->m_nEventType == E_MOUSE_L_DOWN) && (m_nState != EMODE_DRAW_DOT)){ GetPoint(event); m_nState = EMODE_DRAW_DOT; } else if((event->m_nToolbarState == ISTATE_DOT) && (event->m_nEventType == E_MOUSE_L_DOWN) && (m_nState == EMODE_DRAW_DOT)){ GetPoint(event); m_nState = EMODE_DRAW_DOT; } else if((event->m_nToolbarState == ISTATE_DOT) && (event->m_nEventType == E_MOUSE_MOVE) && (m_bedit)){ m_nState = EMODE_DRAW_DOT; } else if((event->m_nToolbarState == ISTATE_LINE) && (event->m_nEventType == E_MOUSE_L_DOWN) && (m_nState != EMODE_DRAW_LINE)){ GetPoint(event); m_nState = EMODE_DRAW_LINE; } else if((event->m_nToolbarState == ISTATE_LINE) && (event->m_nEventType == E_MOUSE_MOVE) && (m_bedit)){ m_nState = EMODE_DRAW_LINE; } else if((event->m_nToolbarState == ISTATE_LINE) && (event->m_nEventType == E_MOUSE_L_DOWN) && (m_nState == EMODE_DRAW_LINE)){ GetPoint(event); m_nState = EMODE_DRAW_LINE; } else if ((event->m_nEventType == E_REDRAW) && (!m_bedit)){ m_nState = EMODE_REDRAW; } else if((event->m_nEventType == E_UP_DOWN) && (event->m_nToolbarState == ISTATE_ARROW)){ m_nState = EMODE_MOVE_UP; } else if((event->m_nEventType == E_DOWN_DOWN) && (event->m_nToolbarState == ISTATE_ARROW)){ m_nState = EMODE_MOVE_DOWN; } else if((event->m_nEventType == E_LEFT_DOWN) && (event->m_nToolbarState == ISTATE_ARROW)){ m_nState = EMODE_MOVE_LEFT; } else if((event->m_nEventType == E_RIGHT_DOWN) && (event->m_nToolbarState == ISTATE_ARROW)){ m_nState = EMODE_MOVE_RIGHT; } else if((event->m_nEventType == E_SELECT_ALL) && !m_bedit){ m_nState = EMODE_SELECT_ALL; } else if((event->m_nToolbarState == ISTATE_ARROW) && (event->m_nEventType == E_MOUSE_L_DOWN)){ m_nState = EMODE_SELECT;; } else if((event->m_nToolbarState == ISTATE_ARROW) && (event->m_nEventType == E_MOUSE_MOVE) && (m_nState == EMODE_SELECT)){ m_nState = EMODE_MOVE_BY_MOUSE; } else if((event->m_nToolbarState == ISTATE_ARROW) && (event->m_nEventType == E_MOUSE_MOVE) && (m_nState == EMODE_MOVE_BY_MOUSE)){ m_nState = EMODE_MOVE_BY_MOUSE; } else if((event->m_nToolbarState == ISTATE_ARROW) && (event->m_nEventType == E_MOUSE_L_UP) && (m_nState == EMODE_MOVE_BY_MOUSE)){ m_nState = EMODE_REDRAW_FRAME; } else if((event->m_nToolbarState == ISTATE_ARROW) && (event->m_nEventType == E_MOUSE_MOVE) && (m_nState == EMODE_DRAW_SWEEP)){ m_nState = EMODE_DRAW_SWEEP; } else if((event->m_nToolbarState == ISTATE_ARROW) && (event->m_nEventType == E_MOUSE_L_UP) && (m_nState == EMODE_DRAW_SWEEP)){ m_nState = EMODE_SWEEP_SELECT; } else if((event->m_nEventType == E_DEL_DOWN) && !m_bedit){ m_nState = EMODE_DELETE; } else if((event->m_nEventType == E_UP_DOWN) && (event->m_nToolbarState == ISTATE_ROTATE)){ m_nState = EMODE_ROTATE_BY_KEY; } else if((event->m_nEventType == E_DOWN_DOWN) && (event->m_nToolbarState == ISTATE_ROTATE)){ m_nState = EMODE_ROTATE_BY_KEY; } else if((event->m_nEventType == E_LEFT_DOWN) && (event->m_nToolbarState == ISTATE_ROTATE)){ m_nState = EMODE_ROTATE_BY_KEY; } else if((event->m_nEventType == E_RIGHT_DOWN) && (event->m_nToolbarState == ISTATE_ROTATE)){ m_nState = EMODE_ROTATE_BY_KEY; } else if((event->m_nEventType == E_UP_UP) && (event->m_nToolbarState == ISTATE_ROTATE) && (m_nState = EMODE_ROTATE_BY_KEY)){ m_nState = EMODE_REDRAW_FRAME; } else if((event->m_nEventType == E_DOWN_UP) && (event->m_nToolbarState == ISTATE_ROTATE) && (m_nState = EMODE_ROTATE_BY_KEY)){ m_nState = EMODE_REDRAW_FRAME; } else if((event->m_nEventType == E_LEFT_UP) && (event->m_nToolbarState == ISTATE_ROTATE) && (m_nState = EMODE_ROTATE_BY_KEY)){ m_nState = EMODE_REDRAW_FRAME; } else if((event->m_nEventType == E_RIGHT_UP) && (event->m_nToolbarState == ISTATE_ROTATE) && (m_nState = EMODE_ROTATE_BY_KEY)){ m_nState = EMODE_REDRAW_FRAME; } else if((event->m_nEventType == E_UP_UP) && (event->m_nToolbarState == ISTATE_ARROW) && ((m_nState = EMODE_MOVE_UP) || (m_nState = EMODE_MOVE_DOWN) || (m_nState = EMODE_MOVE_LEFT) || (m_nState = EMODE_MOVE_RIGHT))){ m_nState = EMODE_REDRAW_FRAME; } else if((event->m_nEventType == E_DOWN_UP) && (event->m_nToolbarState == ISTATE_ARROW) && ((m_nState = EMODE_MOVE_UP) || (m_nState = EMODE_MOVE_DOWN) || (m_nState = EMODE_MOVE_LEFT) || (m_nState = EMODE_MOVE_RIGHT))){ m_nState = EMODE_REDRAW_FRAME; } else if((event->m_nEventType == E_LEFT_UP) && (event->m_nToolbarState == ISTATE_ARROW) && ((m_nState = EMODE_MOVE_UP) || (m_nState = EMODE_MOVE_DOWN) || (m_nState = EMODE_MOVE_LEFT) || (m_nState = EMODE_MOVE_RIGHT))){ m_nState = EMODE_REDRAW_FRAME; } else if((event->m_nEventType == E_RIGHT_UP) && (event->m_nToolbarState == ISTATE_ARROW) && ((m_nState = EMODE_MOVE_UP) || (m_nState = EMODE_MOVE_DOWN) || (m_nState = EMODE_MOVE_LEFT) || (m_nState = EMODE_MOVE_RIGHT))){ m_nState = EMODE_REDRAW_FRAME; } else if((event->m_nToolbarState == ISTATE_ROTATE) && (event->m_nEventType == E_MOUSE_L_DOWN)){ SavePoint(event); m_nState = EMODE_ROTATE_BY_MOUSE; } else if((event->m_nToolbarState == ISTATE_ROTATE) && (event->m_nEventType == E_MOUSE_MOVE) && (m_nState == EMODE_ROTATE_BY_MOUSE)){ m_nState = EMODE_ROTATE_BY_MOUSE; } else if((event->m_nToolbarState == ISTATE_ROTATE) && (event->m_nEventType == E_MOUSE_L_UP) && (m_nState == EMODE_ROTATE_BY_MOUSE)){ m_nState = EMODE_REDRAW_FRAME; } else if((event->m_nToolbarState == ISTATE_ARROW) && (event->m_nEventType == E_MOUSE_MOVE) && (m_nState == EMODE_MANIPULATE_COPY)){ m_nState = EMODE_MANIPULATE_COPY; } else if((event->m_nToolbarState == ISTATE_ARROW) && (event->m_nEventType == E_MOUSE_L_UP) && (m_nState == EMODE_MANIPULATE_COPY)){ m_nState = EMODE_MANIPULATE; } else if((event->m_nToolbarState == ISTATE_ELLIPSE) && (event->m_nEventType == E_MOUSE_L_DOWN)){ SavePoint(event); m_nState = EMODE_DRAW_ELLIPSE; } else if((event->m_nToolbarState == ISTATE_ELLIPSE) && (event->m_nEventType == E_MOUSE_MOVE) && (m_nState == EMODE_DRAW_ELLIPSE)){ m_nState = EMODE_DRAW_ELLIPSE; } else if((event->m_nToolbarState == ISTATE_ELLIPSE) && (event->m_nEventType == E_MOUSE_L_UP) && (m_nState == EMODE_DRAW_ELLIPSE)){ m_nState = EMODE_CREATE_ELLIPSE; } else if(event->m_nEventType == E_GROUP && !m_bedit){ m_nState = EMODE_GROUP; } else if(event->m_nEventType == E_UNGROUP && !m_bedit){ m_nState = EMODE_UNGROUP; } else if(event->m_nEventType == E_TOBACK && !m_bedit){ m_nState = EMODE_ARRANGE_TOBACK; } else if(event->m_nEventType == E_TOFRONT && !m_bedit){ m_nState = EMODE_ARRANGE_TOFRONT; } else if(event->m_nEventType == E_CONTEXT_MENU && !m_bedit){ m_nState = ShowPopUpMenu(event); } else if((event->m_nEventType == E_MOUSE_L_DOWN) && (event->m_nToolbarState == ISTATE_RECT)){ SavePoint(event); m_nState = EMODE_DRAW_RECT; } else if((event->m_nEventType == E_MOUSE_MOVE) && (event->m_nToolbarState == ISTATE_RECT) && (m_nState == EMODE_DRAW_RECT)){ m_nState = EMODE_DRAW_RECT; } else if((event->m_nEventType == E_MOUSE_L_UP) && (event->m_nToolbarState == ISTATE_RECT) && (m_nState == EMODE_DRAW_RECT)){ m_nState = EMODE_CREATE_RECT; } else { m_nState = EMODE_NOP; int et = event->m_nEventType; if((et == E_DEL_DOWN || et == E_GROUP || et == E_UNGROUP || et == E_CONTEXT_MENU || et == E_TOFRONT || et == E_TOBACK || et == E_SELECT_ALL) && m_bedit) { ReleaseCapture(); m_points_collection.RemoveAll(); m_nState = EMODE_REDRAW; m_bedit = false; } } } Като се замисля с тоя if май се улях все можеше и по-добре да го измисля Link to comment Share on other sites More sharing options...
ov3rm4n Posted June 19, 2004 Author Share Posted June 19, 2004 Кво ша кажетe за тоя if ... Като се замисля с тоя if май се улях все можеше и по-добре да го измисля "On an infinitely wide screen, every program is a one liner." --Christian Bauernfeind. Link to comment Share on other sites More sharing options...
sasquatch Posted June 20, 2004 Share Posted June 20, 2004 "On an infinitely wide screen, every program is a one liner." --Christian Bauernfeind. Харесва ми тоя пич :) Link to comment Share on other sites More sharing options...
Guest liquid Posted September 4, 2004 Share Posted September 4, 2004 mnogo off topic..... "tup sum" ...na 99.9% ve4e se otkazvam ot opitite si da navlqza v tazi oblast...(programiraneto)..mai she se sredoto4a kum drugite ezici..govorimite shapka vi svalqm! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.