Форум Всеукраїнської інтернет-олімпіади NetOI


На форумі обговорюються лише питання, пов'язані з олімпіадою

Ви не зайшли.

#76 2005-11-19 15:54:14

Anna
Олімпієць
Звідки: Киев
Зареєстрований: 2005-11-06
Повідомлень: 122

Re: Обсудим решения

Угу, спасибо


Хорошо смеется тот, кто смеется последним...

Поза форумом

 

#77 2005-11-19 15:54:53

xXx
Олімпієць
Звідки: Kirovsk-city
Зареєстрований: 2005-11-16
Повідомлень: 123
Вебсайт

Re: Обсудим решения

Angry Coder написав:

xXx написав:

короче фигня получаеться...
формулы какие-то не такие...
если хочешь, можешь поискать авторские решения...и проверь на них, если на твоём тесте будет 0, то я л...р(не хороший человек)

да мне не за чем:) я уверен на 100%. по крайней мере в формулах для проекций.

Что и такие бывают? (форумы)
вот и мне не за чем. не сегодня так завтра можно будет проверить решения на тестах с правильными(по мнению жюри) выходными данными...


icq - 402174

Поза форумом

 

#78 2005-11-19 15:56:28

DeusEx
Олімпієць
Зареєстрований: 2005-11-17
Повідомлень: 127

Re: Обсудим решения

сегодня-завтра? наивный smile у жюри сегодня выходной, завтра тоже, в понедельник разгрузочный день. Во вторник день грудничков. В среду переучет. Так что забудь smile

Поза форумом

 

#79 2005-11-19 15:57:47

Anna
Олімпієць
Звідки: Киев
Зареєстрований: 2005-11-06
Повідомлень: 122

Re: Обсудим решения

А что там случилось, почему результаты только в понедельник-вторник?


Хорошо смеется тот, кто смеется последним...

Поза форумом

 

#80 2005-11-19 15:58:59

xXx
Олімпієць
Звідки: Kirovsk-city
Зареєстрований: 2005-11-16
Повідомлень: 123
Вебсайт

Re: Обсудим решения

Мне было впадлу тестить...
Circuit.cpp

Код:

#include<stdio.h>

int *a,x,n,k,c[2]={0,0},i,j=0;

int main()
{
    scanf("%d",&n);
    if(n&3)return 0;
    k=n>>1;
    a=new int[k];
    for(i=0;i<k;i++)
    {
        scanf("%d",&a[i]);
        c[a[i]]++;
    }
    if(c[0]!=c[1]){
        do {
            c[a[j++]]--;
            scanf("%d",&x);
            c[x]++;
        }while(c[0]!=c[1]);
        printf("2 %d %d %d %d",j,j+1,j+k,j+k+1);
    }else printf("1 %d %d",k,k+1);
    delete a;
    return 0;
}

icq - 402174

Поза форумом

 

#81 2005-11-19 15:59:30

DeusEx
Олімпієць
Зареєстрований: 2005-11-17
Повідомлень: 127

Re: Обсудим решения

Anna написав:

А что там случилось, почему результаты только в понедельник-вторник?

не знаю, участвую здесь впервые, организация - не очень, в принципе, как для Винницкои нетОИ - то еще неплохо. Просто даже о выводе ничего конкретного в правилах не сказано, я до сих пор точно не знаю, надо ли выводить символ перевода каретки или нет.

Поза форумом

 

#82 2005-11-19 16:01:15

Angry Coder
Олімпієць
Зареєстрований: 2005-11-03
Повідомлень: 42

Re: Обсудим решения

2DeusEx:
ты уверен, что функция erase работает не за линию? я как раз думаю, что она должна работать за линию, так как string это random-access контейнер. так что у тебя может быть квадрат. но я думаю все равно пройдет:)

тебе надо было deque юзать, если уж так.

Відредаговано Angry Coder (2005-11-19 16:03:08)

Поза форумом

 

#83 2005-11-19 16:01:21

Anna
Олімпієць
Звідки: Киев
Зареєстрований: 2005-11-06
Повідомлень: 122

Re: Обсудим решения

да в прошлом году вроде было все нормально... по крайней мере в первых турах


Хорошо смеется тот, кто смеется последним...

Поза форумом

 

#84 2005-11-19 16:02:30

xXx
Олімпієць
Звідки: Kirovsk-city
Зареєстрований: 2005-11-16
Повідомлень: 123
Вебсайт

Re: Обсудим решения

DeusEx написав:

сегодня-завтра? наивный smile у жюри сегодня выходной, завтра тоже, в понедельник разгрузочный день. Во вторник день грудничков. В среду переучет. Так что забудь smile

OK. Не на этой неделе, так на следующей...


icq - 402174

Поза форумом

 

#85 2005-11-19 16:03:17

DeusEx
Олімпієць
Зареєстрований: 2005-11-17
Повідомлень: 127

Re: Обсудим решения

Angry Coder написав:

2DeusEx:
ты уверен, что функция erase работает не за линию? я как раз думаю, что она должна работать за линию, так как string это random-access контейнер. так что у тебя может быть квадрат. но я думаю все равно пройдет:)

нет, все правильно smile. Этот стринг из С++, а не С

Поза форумом

 

#86 2005-11-19 16:04:21

Батыев Андрей
Олімпієць
Звідки: Харьков
Зареєстрований: 2005-11-03
Повідомлень: 70

Re: Обсудим решения

В прошлом году все было реально быстро(т.е. за 1-2 дня уже были результаты).
Все автоматизировано!

Поза форумом

 

#87 2005-11-19 16:07:18

Anna
Олімпієць
Звідки: Киев
Зареєстрований: 2005-11-06
Повідомлень: 122

Re: Обсудим решения

так в чем же дело сейчас? решили попрактиковаться в ручном наборе входных данных?smile

Відредаговано Anna (2005-11-19 16:08:00)


Хорошо смеется тот, кто смеется последним...

Поза форумом

 

#88 2005-11-19 16:10:24

Angry Coder
Олімпієць
Зареєстрований: 2005-11-03
Повідомлень: 42

Re: Обсудим решения

DeusEx написав:

нет, все правильно smile. Этот стринг из С++, а не С

это стринг из stl. и там он реализован как контейнер произвольного доступа,причем односторонний. Тоесть при удалении он должен получить новые значения для всех итераторов. а это линия.

Поза форумом

 

#89 2005-11-19 16:10:56

jack_spektor
Олімпієць
Звідки: Украина Одесса
Зареєстрований: 2005-11-12
Повідомлень: 116
Вебсайт

Re: Обсудим решения

Очевидно компьютеры попросили выходной :-)


Delphi IT!!!
Мой сайт:http:\\mr-kody.blogspot.com

Поза форумом

 

#90 2005-11-19 16:12:20

Anna
Олімпієць
Звідки: Киев
Зареєстрований: 2005-11-06
Повідомлень: 122

Re: Обсудим решения

Устали, бедные...


Хорошо смеется тот, кто смеется последним...

Поза форумом

 

#91 2005-11-19 16:12:33

Yurok
Олімпієць
Зареєстрований: 2005-11-10
Повідомлень: 31

Re: Обсудим решения

О прямой аддресации в пасьянсах, у меня масив
list= array[1..maxn]of record
                                   p1,p2: word;
                                   cnt: shortint;
                                 end;
где
p1,p2- положения первой и второй карты;
cnt - признак положений карт
cnt:
  2  - обе сверху
  0 - одна там, одна там
-2 - обе снизу

sizeof(list)= 9000
но не будем забывать, что у компилится всё на фри паскале, где ограничений на память нет smile
все это значительно ускорить процесс smile

Поза форумом

 

#92 2005-11-19 16:16:47

Батыев Андрей
Олімпієць
Звідки: Харьков
Зареєстрований: 2005-11-03
Повідомлень: 70

Re: Обсудим решения

Реально, кто сделает за O(n^2), то получит максимум половину балов - здесь четкая оптимизация по поиску следующего числа.

Поза форумом

 

#93 2005-11-19 16:34:23

jack_spektor
Олімпієць
Звідки: Украина Одесса
Зареєстрований: 2005-11-12
Повідомлень: 116
Вебсайт

Re: Обсудим решения

Yurok написав:

О прямой аддресации в пасьянсах, у меня масив
list= array[1..maxn]of record
                                   p1,p2: word;
                                   cnt: shortint;
                                 end;
где
p1,p2- положения первой и второй карты;
cnt - признак положений карт
cnt:
  2  - обе сверху
  0 - одна там, одна там
-2 - обе снизу

sizeof(list)= 9000
но не будем забывать, что у компилится всё на фри паскале, где ограничений на память нет smile
все это значительно ускорить процесс smile

Мудрёный у тебя массив.Как по мойму то здесь всё легко:

program newpatiance;
type
card=record
t,b:integer;
end;
cds=array[1..1000]of card;

procedure turn(var c:card);
var
temp:integer;
begin
temp:=c.t;
c.t:=c.b;
c.b:=temp;
end;

procedure sort(var cards:cds;n:integer);
var
temp:card;
i,j:integer;
changed:boolean;
begin
for i:=1 to N-1 do
    for j:=1 to N-1 do
        if(cards[j].t>cards[j+1].t)or((cards[j].t=cards[j+1].t)and(cards[j].b>cards[j+1].b))then
         begin
         temp:=cards[j];
         cards[j]:=cards[j+1];
         cards[j+1]:=temp;
         end;
end;

procedure show(c:cds;n:integer);
var
i:integer;
begin
for i:=1 to n do
write('(',c[i].t,' ',c[i].b,') ');
writeln;
end;

var
cards:cds;
n,res:integer;
i,z,r1,r2:integer;
begin
read(n);
for i:=1 to n do read(cards[i].t);
for i:=1 to n do read(cards[i].b);
{show(cards,n);}
sort(cards,n);
{show(cards,n);}
res:=0;
for i:=1 to n do
begin
     if(cards[i].t=cards[i+1].t)then
     if(cards[i].b=cards[i+1].b)then
     begin
     turn(cards[i]);
     sort(cards,n);
{     show(cards,n);}
     inc(res);
     end else
     begin
     for z:=1 to n do if(cards[z].t=cards[i].b)then turn(cards[i+1]) else turn(cards[i]);
     sort(cards,n);
{     show(cards,n);}
     inc(res);
     end;
end;
writeln(res);
end.

Всё что нужно-отсортировать массив и перевернуть,если есть две одинаковые верхние карты.
В конце-концов от положения карт ничего не изменится - надо найти кол-во переворотов.

Відредаговано jack_spektor (2005-11-19 16:35:19)


Delphi IT!!!
Мой сайт:http:\\mr-kody.blogspot.com

Поза форумом

 

#94 2005-11-19 16:46:55

Батыев Андрей
Олімпієць
Звідки: Харьков
Зареєстрований: 2005-11-03
Повідомлень: 70

Re: Обсудим решения

To jack_spektor:

У тебя поиск карты занимает O(n), т.е. весь алгоритм где-то O(n^2).
У меня все линейно(O(n)).

Поза форумом

 

#95 2005-11-19 17:02:35

jack_spektor
Олімпієць
Звідки: Украина Одесса
Зареєстрований: 2005-11-12
Повідомлень: 116
Вебсайт

Re: Обсудим решения

Батыев Андрей написав:

To jack_spektor:

У тебя поиск карты занимает O(n), т.е. весь алгоритм где-то O(n^2).
У меня все линейно(O(n)).

Алгоритм у меня действительно не самый лучший,но по-мойму в первом туре лучше и не потребуется.Хотя чёрт его знает.
Но главное идея правильная.А ты сверял с тем тестом?Какие у тебя результаты


Delphi IT!!!
Мой сайт:http:\\mr-kody.blogspot.com

Поза форумом

 

#96 2005-11-19 17:24:51

Maestro
Олімпієць
Звідки: Когда как...
Зареєстрований: 2005-10-07
Повідомлень: 22

Re: Обсудим решения

Anna написав:

А что там случилось, почему результаты только в понедельник-вторник?

Немного приболел Ю.Я.Пасихов.
Некому настроить проверялку.


7 бед - один RESET big_smile

Поза форумом

 

#97 2005-11-19 17:29:38

Anna
Олімпієць
Звідки: Киев
Зареєстрований: 2005-11-06
Повідомлень: 122

Re: Обсудим решения

Что, действительно больше никто не может?!


Хорошо смеется тот, кто смеется последним...

Поза форумом

 

#98 2005-11-19 18:18:20

necro
Олімпієць
Зареєстрований: 2005-11-19
Повідомлень: 134

Re: Обсудим решения

jack_spektor написав:

ROBOT написав:

CIRCUIT совсем легко!!!

Не сказал бы...
У тебя когда-нибудь получалось больше двух разрезов?
Мне чего-то кажеться, что там больше двух не может быть...

Да!! не может быть больше двух разрезов в этом и легкость - математически доказал что всегда найдется последовательность подряд идущих 0 и 1 что кол 0 = кол 1 = n div 4 - это с математической олимпы задача
если это вывести то прога елементарная выйдет


Да что там "винница" под новый год... Матан - вот в чем сила

Поза форумом

 

#99 2005-11-19 18:28:16

Батыев Андрей
Олімпієць
Звідки: Харьков
Зареєстрований: 2005-11-03
Повідомлень: 70

Re: Обсудим решения

Кто-нить сделает сайт с решениями и их разборами?
Раньше был netoi.narod.ru а сейчас?

Поза форумом

 

#100 2005-11-19 18:37:48

Maestro
Олімпієць
Звідки: Когда как...
Зареєстрований: 2005-10-07
Повідомлень: 22

Re: Обсудим решения

Anna написав:

Что, действительно больше никто не может?!

А ты сможешь настроить проверялку, для проверки решений восьмисот участников? И я не смогу sad
Нужно прицепить к ней авторские тесты, подобрать таймлимиты, ведь для каждого теста они разные...
Если плохо в этом разбираться, можно дров наломать, а потом участники в праведном гневе забросают жюри письмами, мол неправильно проверяли наши идеальные алгоритмы.
В общем работа ответственная, её должен делать специалист, который на этом зубы сьел.


7 бед - один RESET big_smile

Поза форумом

 

Нижній колонтитул

Powered by Likt
© Copyright 2002–2009 Likt