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


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

Ви не зайшли.

#26 2007-01-05 12:06:26

Yevgeniy
Новий користувач
Зареєстрований: 2006-10-14
Повідомлень: 67

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

До хеш таблиць це відноситься. Це два масива, один з яким містить різницю dx = xi - xj а другий dy = yi - yj(грубо говорячи)


"Математика -- цариця наук, арифметика -- цариця математики."
      Карл Фрідріх Гаусс (1777 - 1855) - КОРОЛЬ МАТЕМАТИКІВ.

Поза форумом

 

#27 2007-01-05 12:12:34

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

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

имхо к хеш-таблицам оно относится так же как и к сортировке....
но если отнести это к хеш-таблам, то нада уже 5 массивов...
однин для хранения значений dx dy, другой для хранения хеш-значений, и 4ый для хранения количества, 5ый - указатель на следующий элемент в списке...


icq - 402174

Поза форумом

 

#28 2007-01-05 12:20:28

Yevgeniy
Новий користувач
Зареєстрований: 2006-10-14
Повідомлень: 67

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

!!

Відредаговано Yevgeniy (2007-01-05 12:21:48)


"Математика -- цариця наук, арифметика -- цариця математики."
      Карл Фрідріх Гаусс (1777 - 1855) - КОРОЛЬ МАТЕМАТИКІВ.

Поза форумом

 

#29 2007-01-05 12:26:01

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

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

Yevgeniy, возникает огромное желание посмотреть на сорс... и узнать что такое хеш-таблицы.... )


icq - 402174

Поза форумом

 

#30 2007-01-05 12:32:46

Yevgeniy
Новий користувач
Зареєстрований: 2006-10-14
Повідомлень: 67

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

Виклади свій код.


"Математика -- цариця наук, арифметика -- цариця математики."
      Карл Фрідріх Гаусс (1777 - 1855) - КОРОЛЬ МАТЕМАТИКІВ.

Поза форумом

 

#31 2007-01-05 12:36:08

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

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

Код:

#include<algorithm>
#include<cstdio>

using namespace std;

#define N        1000
#define HASH    2097151

struct Pencil{
    int x0,y0,x1,y1;
    inline void read(){
        scanf("%d%d%d%d",&x0,&y0,&x1,&y1);
        if(x0>x1||x0==x1&&y0>y1)
            swap(x0,x1),swap(y0,y1);
    }    
}a[N],b[N],*ae,*be;

int n;

struct FF{
    FF*next;
    int q;
    short c;
}*h[HASH+1],q[N*N],*f=q;

int main(){
    freopen("x.in","r",stdin);
    freopen("x.out","w",stdout);
       scanf("%d",&n),ae=a+n,be=b+n;
       Pencil*i,*j;
       for(i=a;i<ae;(i++)->read());
       for(j=b;j<be;(j++)->read());
       int dx,dy,hsh,p,res=0;
       FF* k;
       for(i=a;i<ae;++i)for(j=b;j<be;++j)
           if((dx=(i->x0-j->x0))==(i->x1-j->x1) && (dy=(i->y0-j->y0))==(i->y1-j->y1)){
               p=dy^(dx<<15);
               hsh=(dx^(dy*519))&HASH;
               for(k=h[hsh];k && p!=k->q;k=k->next);
               if(k==NULL)
                   f->next=h[hsh],h[hsh]=f,
                   f->q=p,(f++)->c=1,res>?=1;
               else if(++(k->c)>res)res=k->c;
           }    
       printf("%d\n",n-res);
    return 0;
}

icq - 402174

Поза форумом

 

#32 2007-01-05 12:58:31

Yevgeniy
Новий користувач
Зареєстрований: 2006-10-14
Повідомлень: 67

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

НУ ось тест
1
1 0 10 100
1 0 10 100

Має бути 0, твоя прога видає 1


"Математика -- цариця наук, арифметика -- цариця математики."
      Карл Фрідріх Гаусс (1777 - 1855) - КОРОЛЬ МАТЕМАТИКІВ.

Поза форумом

 

#33 2007-01-05 13:01:04

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

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

моя прога выдаёт 0... smile


icq - 402174

Поза форумом

 

#34 2007-01-05 13:01:41

Yevgeniy
Новий користувач
Зареєстрований: 2006-10-14
Повідомлень: 67

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

1
1 3 3 3
5 2 3 2

Має бути 0, видає 1


"Математика -- цариця наук, арифметика -- цариця математики."
      Карл Фрідріх Гаусс (1777 - 1855) - КОРОЛЬ МАТЕМАТИКІВ.

Поза форумом

 

#35 2007-01-05 13:03:09

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

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

опять 0... smile


icq - 402174

Поза форумом

 

#36 2007-01-05 13:04:44

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

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

ты мою прогу тестируешь??? и кст... свою не желаешь показать?


icq - 402174

Поза форумом

 

#37 2007-01-05 13:08:54

Yevgeniy
Новий користувач
Зареєстрований: 2006-10-14
Повідомлень: 67

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

Я просто звіряю зі своїми, щоб переконатися в тому, що моя правильна. А те що ти тут виставив, проходить всі мої тести, крім цих двох(в мене коло 20 тестів).


"Математика -- цариця наук, арифметика -- цариця математики."
      Карл Фрідріх Гаусс (1777 - 1855) - КОРОЛЬ МАТЕМАТИКІВ.

Поза форумом

 

#38 2007-01-05 13:16:59

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

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

может проблема с компилятором(у тебя)? я юзаю gcc.. и эти тесты моя прога проходит...
ну раз не желаешь показать код, то я щас сгенерю пару тестов for you... )


icq - 402174

Поза форумом

 

#39 2007-01-05 13:20:47

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

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

я лутше дам код который будет тесты генерить....

Код:

#include<iostream>
#include<cstdio>
#include<ctime>

using namespace std;

#define N    1000
#define R    0
#define S    10000

#define F_CENSORED_K

inline int rnd(){
    return (rand()%(S+1))-(rand()%(S+1));
}    

int dx,dy;

struct Pencil{
    int x0,y0,x1,y1;
    inline void random(){
        x0=rnd(),y0=rnd(),x1=rnd(),y1=rnd();
    }    
    inline void operator=(Pencil&p){
        x0=p.x0+dx,y0=p.y0+dy,
        x1=p.x1+dx,y1=p.y1+dy;
    }    
    inline void print(){
#ifdef F_CENSORED_K
        printf("%d %d %d %d ",x0,y0,x0+1,y0+1);
#else
        printf("%d %d %d %d ",x0,y0,x1,y1);
#endif
    }    
}a[N],b[N];
bool da[N],db[N];

int main(){
    srand(time(0));
    freopen("x.in","w",stdout);
    printf("%d ",N);
    for(int i=0;i<N;++i)
        a[i].random(),b[i].random();
    dx=rnd(),dy=rnd();
    for(int k=N-R;k;--k){
        int i,j;
        do i=rand()%N;
        while(da[i]);da[i]=true;
        do j=rand()%N;
        while(db[j]);db[j]=true;
        a[i]=b[i];
    }    
    for(int i=0;i<N;++i)a[i].print();
    for(int i=0;i<N;++i)b[i].print();
    return 0;
}

R = это правильный ответ


icq - 402174

Поза форумом

 

#40 2007-01-05 22:24:44

FireTiger
Новий користувач
Звідки: Донецк
Зареєстрований: 2006-09-27
Повідомлень: 86

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

Гм... господа... здесь не ТопКодер и это не Challenge Phase...  smile


ICQ 339203772  - Если что-нибудь срочно необходимо - стучитесь, я отвечу! smile
----------------
Основная проблема с программистами заключается в том, что вы никогда не можете сказать, чем они занимаются, до тех пор, пока не будет слишком поздно.

Поза форумом

 

#41 2007-01-06 11:00:50

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

Re: Обсуждение решения задачи Pencils (только после 23:59 04.01.07)

Yevgeniy написав:

Я просто звіряю зі своїми, щоб переконатися в тому, що моя правильна. А те що ти тут виставив, проходить всі мої тести, крім цих двох(в мене коло 20 тестів).

а на онлайн мой код набирает 60... ну ладно... уже не в тему... smile


icq - 402174

Поза форумом

 

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

Powered by Likt
© Copyright 2002–2009 Likt