Dział zablokowany Ten wątek jest zablokowany. Nie możesz w nim pisać ani edytować postów.  [ Posty: 80 ]  Przejdź na stronę Poprzednia strona  1 ... 4, 5, 6, 7, 8
Konduktor - testy 
Autor Wiadomość
Gwiazda 1Gwiazda 1Gwiazda 1Gwiazda 1
Avatar użytkownika

Dołączył(a): 8 paź 2010, o 21:56
Posty: 40
Post Re: Konduktor - testy
Kod:
for(amount=0;k>=n;k-=n,amount++);
na:
Kod:
amount=k/n;
k=k%n;

Od razu jak spojrzałem na czasy to coś mi nie grało i zobaczyłem, że zapomniałem up'nąć 'najnowszego' kodu.


Ostatnio edytowano 13 paź 2010, o 22:53 przez Grzegorz Chuchro, łącznie edytowano 1 raz



13 paź 2010, o 22:45
Zobacz profil
Gwiazda 2Gwiazda 2Gwiazda 2Gwiazda 2
Avatar użytkownika

Dołączył(a): 31 maja 2009, o 18:24
Posty: 107
Post Re: Konduktor - testy
I ten pierwszy kod przeszedł Ci i to na takich czasach O.o?! Przecież tu Ci się robi złożoność O(K), czyli nawet 10^9 kroków. W takim razie powinieneś mieć TLE.


13 paź 2010, o 22:53
Zobacz profil
Gwiazda 1Gwiazda 1Gwiazda 1Gwiazda 1
Avatar użytkownika

Dołączył(a): 8 paź 2010, o 21:56
Posty: 40
Post Re: Konduktor - testy
Dobry kod nie jest zły.
Jakbyś był taki miły i podał swoje czasy, byłbym wdzięczny.


13 paź 2010, o 22:56
Zobacz profil
Gwiazda 2Gwiazda 2Gwiazda 2Gwiazda 2
Avatar użytkownika

Dołączył(a): 31 maja 2009, o 18:24
Posty: 107
Post Re: Konduktor - testy
Grzegorz Chuchro napisał(a):
Dobry kod nie jest zły.
Jakbyś był taki miły i podał swoje czasy, byłbym wdzięczny.

Ok, nie ma sprawy, tylko nie wiem po co. Dla mnie liczy się to, że mam 30/30, czyli czasy mam takie jakie być powinny :D.

Kod:
Test    Wynik   Czas    Pamięć
0.out (test przykładowy)   accepted    0.00s   880
1.out   accepted    0.00s   880
2.out   accepted    0.00s   880
3.out   accepted    0.00s   880
4.out   accepted    0.00s   880
5.out   accepted    0.00s   880
6.out   accepted    0.00s   880
7.out   accepted    0.20s   880
8.out   accepted    0.02s   880
9.out   accepted    0.01s   880
10.out  accepted    0.08s   880


Jak dla mnie porównywanie czasów różniących się o kilka setnych sekundy jest dosyć śmieszne. Liczy się przede wszystkim złożoność. Chociaż rzeczywiście, zdarzają się wyjątki. Wczoraj pisałem sobie jedno zadanie ze starej OI i mam złożoność liniową i poprawny algorytm, a tylko 91 pkt., bo przekracza mi połowę limitu na kilku testach. Ale to są sytuacje sporadyczne.


13 paź 2010, o 23:05
Zobacz profil
Gwiazda 2Gwiazda 2Gwiazda 2Gwiazda 2

Dołączył(a): 1 sie 2010, o 23:23
Posty: 34
Post Re: Konduktor - testy
Ja chciałem być sprytny dla lepszych czasów i zrobiłem
Kod:

    sprintf(c0, "%d ", a);
    sprintf(c1, "%d ", a+1);
    sprintf(c2, "%d ", a+2);
    sprintf(cp, "%d ", a/2);
    sprintf(cp1, "%d ", a/2+1);
 
    if (b==0)
    {
      printf(cp);
      FOR(j,2,n-1) printf(c0);
      printf(cp);
    } else
    if (b<n)
    {
      printf(cp1);
      FOR(j,2,b) printf(c1);
      FOR(j,b+1,n-1) printf(c0);
      printf(cp);
    } else
    {
      printf(cp1);
      FOR(j,2,2*n-b-1) printf(c1);
      FOR(j,2*n-b,n-1) printf(c2);
      printf(cp1);
    }
 

Pech chciał, że te tablice zrobiłem 10-elementowe, zamiast 11, no i 9/10.


13 paź 2010, o 23:19
Zobacz profil
Gwiazda 1Gwiazda 1Gwiazda 1Gwiazda 1
Avatar użytkownika

Dołączył(a): 8 paź 2010, o 21:56
Posty: 40
Post Re: Konduktor - testy
Kod:
7.out accepted 0.01s
vs
7.out   accepted    0.20s
Wujek Abon wie co robi :D

Dzięki bardzo. Jeśli chodzi o zwenętrzne zadania to ostatnio robiłem spoja
http://pl.spoj.pl/ranks/XIWTPZE/
Nie wiem jak tamci panowie uzyskali czasy 0.05, ale wyczuwam assemblera/gotowe wyniki.


13 paź 2010, o 23:24
Zobacz profil
Gwiazda 2Gwiazda 2Gwiazda 2

Dołączył(a): 23 lis 2009, o 23:00
Posty: 101
Post Re: Konduktor - testy
Kod:

0.out (test przykładowy)   accepted    0.00s   1032
1.out   accepted    0.00s   1032
2.out   accepted    0.00s   1032
3.out   accepted    0.00s   1032
4.out   accepted    0.00s   1032
5.out   accepted    0.00s   1032
6.out   accepted    0.00s   1032
7.out   accepted    0.04s   5120
8.out   accepted    0.00s   2048
9.out   accepted    0.00s   1540
10.out  accepted    0.01s   7172
 

:P


14 paź 2010, o 09:15
Zobacz profil
Gwiazda 1Gwiazda 1Gwiazda 1Gwiazda 1
Avatar użytkownika

Dołączył(a): 8 paź 2010, o 21:56
Posty: 40
Post Re: Konduktor - testy
Hoho, magiczny ten wynik masz w 10.out :D


14 paź 2010, o 10:00
Zobacz profil
Gwiazda 2Gwiazda 2Gwiazda 2

Dołączył(a): 23 lis 2009, o 23:00
Posty: 101
Post Re: Konduktor - testy
Dlaczego magiczny?
Kod:

//FallSpot2010
//Zadanie: Konduktor
//Autor: Łukasz Wałejko
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
string toString(int x)
{
  string out;
  while(x>0)
  {
    out+=(x%10)+'0';
    x/=10;
  }
  reverse(out.begin(),out.end());
  return out;
}
int main()
{
  int z,n,k;
  scanf("%d",&z);
  while(z--)
  {
    scanf("%d%d",&n,&k);
    if(k<=n)
    {
      string out;
      for(int i=1;i<=k;++i)out+=("1 ");
      for(int i=k+1;i<=n;++i)out+=("0 ");
      puts(out.c_str());
    }
    else if(n==1)
    {
      printf("%d\n",k);
    }
    else if(n==2)
    {
      printf("%d %d\n",k-k/2,k/2);
    }
    else
    {
      k-=n;
      int a=k/(n-1);
      int b=k%(n-1);
      int l=1+a/2+a%2;
      int r=1+a/2;
      if(a%2==1)
      {
        string out=toString(l)+" ";
        string d[2];
        d[0]=toString(a+1)+" ";
        d[1]=toString(a+2)+" ";
        for(int i=2;i<=n-1;++i)
        {
          if(b+1>=i)out+=d[1];
          else out+=d[0];
        }
        out+=toString(r);
        puts(out.c_str());
      }
      else
      {
        string out=toString(l)+" ";
        string d[2];
        d[0]=toString(a+1)+" ";
        d[1]=toString(a+2)+" ";
        for(int i=2;i<=n-1;++i)
        {
          if(n-b<=i)out+=d[1];
          else out+=d[0];
        }
        out+=toString(r);
        puts(out.c_str());
      }
    }
  }
    return 0;
}
 


14 paź 2010, o 11:31
Zobacz profil
Gwiazda 1Gwiazda 1Gwiazda 1Gwiazda 1
Avatar użytkownika

Dołączył(a): 8 paź 2010, o 21:56
Posty: 40
Post Re: Konduktor - testy
Magiczny, bo mały, chyba że to ja coś jeszcze innego głupiego przeoczyłem.
Cpp, rzecz, której nie rozumiem. Proste algorytmy nie wymagają wychylania się poza C, ale jak kto woli ;)


14 paź 2010, o 11:51
Zobacz profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Dział zablokowany Ten wątek jest zablokowany. Nie możesz w nim pisać ani edytować postów.  [ Posty: 80 ]  Przejdź na stronę Poprzednia strona  1 ... 4, 5, 6, 7, 8


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group. Forum style based on STSoftware Hestia.
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL