101

(6 ответов, оставленных в Algo)

разве тут прокатит разбиение на разряды ??? я попробывал, ответ стало неверный выдавать, наверно коряво написал, да и от векторов похоуд нуна отказаться smile

102

(15 ответов, оставленных в Algo)

Не знаю, но я не поэтому сравнивал
Тип BOOL идёт домножение на 1
Тип INT идёт домножение на 4
Следовательно в 4 раза .

103

(15 ответов, оставленных в Algo)

И так на 4e7, получилось что оба алгоритма работают приблизительно одинаково около 1,7 секунд.
Из этого вывод что линейный алгоритм хуже,так как он требует массив длинной N типа (INT), тогда как второй алгоритм требует массив длиной N, но типа (BOOL), что сокращает количество памяти в четыре раза. roll

104

(15 ответов, оставленных в Algo)

А... Тогда понятно smile Зачем тогда Линейный алгоритм big_smile
Я не пробовал,надо будет проверить smile
Сейчас проверю и скажу мой отчёт tongue
Буду проверять на Delphi, там точное время узнаю.
Проверять буду для 4e7 = 40 000 000 .

105

(15 ответов, оставленных в Algo)

Ыыыы
Он не может работать быстрее логически. Подумай разумно. Там линейно, тут больше гораздо.
Тогда нужно писать вот так,вместо +, использовать умножить,и это ускорит во много раз твою программу.

int n = (int)1e7;
vector <bool> prime(n+1,true);
for(int i=2;i*i<=n;i++)
    if(prime[i])
        for(int j=i*i;j<=n;j+=i)
            prime[j]=0;

106

(11 ответов, оставленных в Problems)

Конечно на 2х1, и 1х2 прокатит макс пар.,это стандартная задача.
А вот с большим тут да hmm

107

(11 ответов, оставленных в Problems)

Стой ? Может друг друга не до поняли
Я говорю,что вот задача допустим :
Есть поле,на котором допустим есть связные области ... Их надо замостить плитками 2х1, или 1х2
Причём мы можем определить куда можно положить плитку(то есть как и в задаче выше по окраске подходило и так далее)
Нужно замостить максимальным кол-вом плиток,или просто проверить можно ли это сделать...
Так вот эту задачу можно очень просто решить потоком. Ты про это ?

108

(6 ответов, оставленных в Algo)

Я написал длинное умножение за n log(n) самым быстрым способом используя complex
Я не уверен что оно будет давать точный результат , это надо уточнить у автора, какая гарантия правильности ответа smile))
И второе,я пишу на Microsoft Visual C++ 2009, и на моей машине работает около 9 секунд,на двух числах длиной 5*10^5
То есть долговато,может это Си++ такое,я думаю если я напишу её на паскале,а я это сделаю скоро,то она будет работать < 5 секунд я думаю big_smile Может я в чём нибудь некорректен,и плохо написал что то,но у меня получается так.

109

(11 ответов, оставленных в Problems)

Может всё таки можно,так как для плиток 2*1 мы умеем,добавить вершин каких-нибудь.
Но лучше ДП, и тем более в твоём сообщении мелькнуло слово "почти"  big_smile

110

(11 ответов, оставленных в Problems)

Я думаю как нибудь извращённо можно smile Но не нужно.

111

(10 ответов, оставленных в Algo)

Непонятен вопрос, скорректируйте пожалуйста своё сообщение более точнее. P.S. БоТ big_smile

112

(10 ответов, оставленных в Algo)

ну как бы понятно
stack<int>
создаёт Стэк целых чисел,где в каждой ячейке хранится число и всё
stack<int,vector<int> >
создаёт стек
где в каждой ячейке хранится свой вектор и число
то есть когда допустим нужно хранить не просто числа,а именно список каких-то чисел
вот и всё
так же и со всеми другими описаниями....
map< string,string >
map< string,bool >
map< string,set< pair< string,bool > > >
map< string,set< string > >
....

113

(10 ответов, оставленных в Problems)

и таму и таму big_smile
я про себя говорил про точный ответ на запрос )

114

(10 ответов, оставленных в Problems)

Но ты на запрос отвечаешь не за log(n), а выше я предложил как это сделать быстрее,
я думаю тут множество способов.

115

(10 ответов, оставленных в Problems)

Ну во первых,в данной задаче можно писать за квадрат не мучать себя.

Ну а если тебе нужен хороший алгоритм то используй дерево отрезков,где просто будешь находить что именно ты перекрашиваешь и перекрашивать за log(n), так же можно будет как-нибудь находить, это просто нужно придумать.

А если время нужно быстрое,и писать время не очень много,то есть альтернатива,которая хорошо будет работать даже при (N <= 100000), просто разобьём всю плоскость на SQRT(N) отрезков, тогда что получается,что бы перекрасить нам нужно максимум SQRT(N) операций,то есть просто пробежаться и покрасить нужные,а ответ на запрос тоже будет за SQRT(N), так как ты тем же пробегом можешь узнать самый длинный на текущий момент,так же для хорошего ускорения можно в процессе объединять отрезки одинакового цвета,что бы цвета чередовались,
и того Memory: O(N), Time: ~O(N * SQRT(N)).

116

(10 ответов, оставленных в Algo)

Просто это было в задаче о длинных числах,сглупил smile
Спасибо ! Теперь всё понятно .

117

(10 ответов, оставленных в Algo)

У меня вопрос :
Что значит вот этот тип

typedef complex<double> base;

то есть он и комплексный и дробный,объясните пожалуйста в чём прелесть типа комплех,и так далее...

и ещё

base wlen (cos(ang), sin(ang));

то есть переменная типа

typedef complex<double> base;

и в неё в скобках два числа,что это значит ? хотя вот тут уже

base w (1);

а вот тут

base u = a[i+j],

расскажите ...?

118

(10 ответов, оставленных в Offtopic)

# Windows
# Delphi(Free Pascal), Microsoft Visual 2009(или ещё какой другой).
# Microsoft C++ Compiler, Ну и Паскалевский

#Ubuntu 9.04
#Ещё не понял как установить эти все языки big_smile никак руки не дойдут

119

(12 ответов, оставленных в OlympNews)

а это расписание это Российское время ???
И ещё можно подсказать стратегию решения задач smile а то там кординально другая система big_smile

120

(11 ответов, оставленных в Problems)

Ну а решать можно динамикой,допустим по маскам,или может как потоком,я думаю существует не один метод smile

121

(15 ответов, оставленных в Algo)

Если нужно написать что - то на Паскале попросите у меня,я напишу. Если нужно кучу напишу,только отпишите ещё раз о помощи big_smile

122

(15 ответов, оставленных в Algo)

В смысле шустрый ? Он ведь ты написал за O(N) работает и памяти O(N) .
big_smile Если не за линейно,то есть и другие решётки Эратосфена за линейно ):D

123

(18 ответов, оставленных в OlympNews)

Да там всё по простецки-душ,туалет на улице,компьютеры в спортивном зале,и таксофоны стоят big_smile

124

(14 ответов, оставленных в Feedback)

Ага ! Я тоже за подсветку smile

125

(12 ответов, оставленных в OlympNews)

Оо ) кул . Надо разобраться с системой ихней smile