Quantcast
Channel: SPOJ Discussion board - Latest posts
Viewing all 22527 articles
Browse latest View live

AL_10_05 - Gorskie wycieczki

$
0
0

zadanie robiłem dość dawno, i nie do końca rozumiem obecnie jak :slight_smile:

gdybym miał czas, to pewnie w końcu bym zrozumiał jak to zrobiłem, ale obecnie mogę jedynie powiedzieć, że w jakiś (obecnie dla mnie niejasny) sposób liczyłem całą tablicę połączeń, przerywając liczenie, gdy znalazłem połączenia dla wszystkich zapytań

trochę później wymyśliłem inny sposób rozwiązania zadania, bez korzystania z tabeli wszystkich połączeń, działający w czasie O((V + Q) * log (V) + E * log(E)), ze względu na dość złożony kod nie chciało mi się go zrealizować

sądząc po czasie rozwiązań i zużyciu pamięci rozwiązań, kilka osób taki/podobny algorytm zrealizowało


WA in CODESPTE

$
0
0

Hi. I am getting WA for CODESPTE. Here is the link to the problem. I got AC for the exact same problem at HackerRank (link) and used the same code for this problem in SPOJ. However, I got WA. I feel that something might be wrong with the test data.

Here is my code:

// Li Hong Sheng Gabriel's Competitive Programming Template v2017.7
#include<bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tag_and_trait.hpp>

//using namespace __gnu_pbds;
using namespace std;

#define ll long long
#define mp make_pair
#define eb emplace_back
#define pb push_back
#define em emplace
#define len(s) (int) s.length()
#define sz(v) (int) v.size()
#define p32 pair<int,int>
#define p64 pair<ll,ll>
#define pdd pair<double,double>
#define fi first
#define se second
#define repn(i,e) for(int i = 0; i < e; i++)
#define repsn(i,s,e) for(int i = s; i < e; i++)
#define rrepn(i,s) for(int i = s; i >= 0; i--)
#define rrepsn(i,s,e) for(int i = s; i >= e; i--)
#define v64 vector<ll>
#define v32 vector<int>
#define vp64 vector<p64>
#define vp32 vector<p32>
#define aprint(a,s) if(DRAFT) { cout << "DEBUG: "; repn(k,s) { cout << setw(4) << right << a[k] << " "; } cout << endl; }
#define mprint(aa,rn,cn) if(DRAFT) { repn(i,rn) { aprint(aa[i],cn); } cout << endl; }
#define vprint(a) if(DRAFT) { cout << "DEBUG: "; repn(k,sz(a)) { cout << setw(4) << right << a[k] << " "; } cout << endl; }
#define vrprint(a,b) if(DRAFT) { cout << "DEBUG: "; repn(k,b) { cout << setw(4) << right << a[k] << " "; } cout << endl; }
#define vvprint(a) if(DRAFT) repn(i,sz(a)) { cout << "DEBUG: " << i << ": "; repn(j,sz(a[i])) { cout << setw(4) << right << a[i][j] << " "; } cout << endl; }
#define vvrprint(a,b) if(DRAFT) repn(i,b) { cout << "DEBUG: " << i << ": "; repn(j,sz(a[i])) { cout << setw(4) << right << a[i][j] << " "; } cout << endl; }
#define value(a) if(DRAFT) { cout << "DEBUG: The value of " << #a << " is " << a << endl; }
#define valuep(p) { if(DRAFT) cout << "DEBUG: " << "( " << p.fi << ", " << p.se << " )" << endl; }
#define message(s) { if(DRAFT) cout << "MESSAGE: " << s << endl; }
#define inf32 INT_MAX
#define inf64 LLONG_MAX
#define all(a) a.begin(),a.end()
#define UM unordered_map
#define US unordered_set
#define EPS 1e-10
#define breakl "\n"
#define MOD 1000000007

// Uncomment the include files, namespace and type to use
//typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> AVL;
// Usage for AVL:
// set functions, rank and select:
//select: cout<<*X.find_by_order(>=1)<<endl;
//rank: cout<<X.order_of_key(>=1)<<endl;

inline void scale(int x) { cout.precision(x); cout << fixed; }
double dist(pdd x,pdd y) { return sqrt((x.fi-y.fi)*(x.fi-y.fi)+(x.se-y.se)*(x.se-y.se)); }
ll lpow(ll x, int y) { if(!y)return 1;ll t=lpow(x,y/2);if(y&1)return(y>0)?x*t*t:(t*t)/x;return t*t; }
int ipow(int x, int y) { if(!y)return 1;int t=ipow(x,y/2);if(y&1)return(y>0)?x*t*t:(t*t)/x;return t*t; }

void split(vector<string> &tmp,string &line,char * buffer,char delim=' ') {
	strcpy(buffer,line.c_str());
	char * token = strtok(buffer,&delim);
	while(token != 0) {
		tmp.eb(string(token));
		token = strtok(NULL,&delim);
	}
}

inline void fastio(int debug) {
	if(debug) {
		cout << "DEBUGGING MODE..." << endl;
		freopen("in","r",stdin);
	} else {
		ios_base::sync_with_stdio(false), cin.tie(0);
	}
}

// End of Template

bool DRAFT = 1; // DO NOT REMOVE THIS LINE

#define MAX_N 10000

int n,t,a,b;
v32 graph[MAX_N];
int fact[MAX_N];

void factMod(int a, int MODULO) {
	int cnt = 1;
	fact[0] = 1;
	while (cnt <= a) fact[cnt] = (int)((long long) fact[cnt-1] * cnt % MODULO), cnt++;
}

int solve() {
	int cen = n; int ans = 1;
	repn(u,n) {
		if(sz(graph[u]) == 1) {
			cen--;
			continue;
		}
		int small = 0, big = 0;
		for(auto v : graph[u]) {
			if(sz(graph[v]) > 1) big++;
			else small++;
			if(big > 2) return 0;
		}
		ans = 1LL * ans * fact[small] % MOD;
	}
	return cen == 1 ? ans : (ans * 2LL % MOD);
}

int main(void) {
	fastio(0);
	factMod(MAX_N-1,MOD);
	cin >> t;
	while(t--) {
		cin >> n;
		fill(graph,graph+n,v32());
		repn(i,n-1) {
			cin >> a >> b;
			graph[a].eb(b);
			graph[b].eb(a);
		}
		cout << solve() << breakl;
	}
	return 0;
}

Is someone able to assist me on this?

FR_04_14 - Najbliższa pierwsza

FR_04_14 - Najbliższa pierwsza

$
0
0

Test:
4
1
12
14
16

Poprawny out:
2
13
13
17

Twój out:
3
13
13
13

PP0604A - Średnia arytmetyczna, nie rozumiem polecenia?

$
0
0

rozróżniam, przepraszam źle się wyraziłem.

Dziękuje wam, teraz rozumiem. Biorę się za robienie zadania.

FR_04_14 - Najbliższa pierwsza

$
0
0

Dla 12 nie powinno być 11, a nie 13?
Przemyślałem mój kod i go"udoskonaliłem"(przynajmniej mam taką nadzieję), lecz niestety nadal nie ma AC.
http://ideone.com/XvruKi

Approach of catm(id 1418) problem

$
0
0

i used the approach that for any case if the mouse and cat form the diagonals of a square then the mouse can be caught otherwise not (the mouse in between and two cats on other sides of it).but i m not able to get ac.
please correct me if i m wrong and also suggest the correct logic for this problem.
thanks

AL_10_05 - Gorskie wycieczki

$
0
0

Q jest duże, a q małe :wink:
A tak serio w treści zadania nie widzę nic na temat wielkości q, ale jeżeli masz tle, to raczej preprocesing i przygotowanie odpowiedzi w tabeli [oczywiście 1/2 tabeli] [i ja tak mniej więcej mam]

Czy te algorytmy są tutaj dobre?
Nie chodzi o najkrótszą/najtańszą drogę/trasę.
Jeżeli między dwoma punktami jedna droga prowadzi przez szczyt o wys 100, a druga droga prowadzi przez x [tu wstaw dowolną wartość większą od 2] szczytów o wys 55, to odpowiedzią będzie 55 a nie 100.
Czy na pewno dobrze przemyślałeś zadanie? Dobrze jest narysować sobie odpowiedni rysunek.

PS
jednak jest
max q = 10000
Może to i nie jest dużo.


FR_04_14 - Najbliższa pierwsza

$
0
0

Powinno. Najpewniej @redysz minimalnie pomylił się wklejając. Mój kod (AC) wypluwa 11.

Kodu się trochę poczepiam. Może na wyrost - nie mówię, że to doprowadzi Cię do AC, ale wg mnie na pewno nie zaszkodzi, a pomoże w wielu innych zadaniach i sytuacjach "życiowych"

bool pierwsza(int liczba) - ok. Chyba dostrzegam tu nawet jakieś sito, a już prawie utraciłem wiarę w ludzi na SPOJu :wink: Jednak Twoje sito jest właśnie jakieś; właściwie jest to zalążek sita, a jego niedoskonałość uświadomisz sobie wyobrażając sobie 100000 wywołań tej funkcja dla liczba := najiększa liczba pierwsza mniejsza niż 10000000 (zdaje się, że taka jest największa możliwość wg treści zadania). Ile operacji porównania, modulo bądź związanych z działaniem pętli wykonasz? Sporo. Za każdym wywołaniem wykażesz, że liczba jest pierwsza. Nie lepiej wywołać funkcję raz i zapamiętać co jest pierwsze, a co nie?

Wspomniałem o sicie - reszta to zadanie na użycie wyszukiwarki. I podpowiem jeszcze, że także tablic :wink:

Co do reszty - jak już powiesz programowi jakie liczby są pierwsze, a jakie nie, całe zadanie stanie się duuużo prostsze do zakodowania.

Emocjonująca rozgrywka w węża MWP3_3E

$
0
0

"zwykłe tablice (dokładnie 2 ) użyte we właściwy sposób"
Właśnie ten właściwy sposób to jest coś o co tu chyba chodzi.
Zadanie zrobiłem kolejny raz, tym razem po Waszych radach na tablicach i z rozbiciem współrzędnych:
http://ideone.com/ptVj1w
Nazewnictwo zmiennych już pomijam :), program tworzy 2 tablice na każde pole po którym kiedykolwiek pojawił się wąż, a pętla na końcu ze zmienną leb sprawdza czy aktualna pozycja lba X i Y jest równa którejś wcześniejszej pod warunkiem że pozycja ta jest o mniej numerków w tablicy niż jest aktualna długość węża.
Na nic mądrzejszego nie daję rady wpaść, niby działa wyniki chyba dobre ale znowu za wolno.........

Emocjonująca rozgrywka w węża MWP3_3E

$
0
0

Moje rozwiązanie nie korzysta z cin, ani nawet scanf, a z fast I/O. To nie zaszkodzi poprawić, choć może zrobiłem to tylko po to by wyśrubować czas... nie pamiętam.

Moje rozwiązanie nie korzysta z getline. Chyba gdzieś na starym forum wyczytałem, że getline nie przejdzie. Jednak znowu - memoria fragilis est.

W moim kodzie wykonuję ify dla każdej litery, a w nich ifuję dokładnie cztery możliwe przypadki. Za każdym razem wykonuję stosunkowo proste operacje, które nie kosztują wiele czasu.

Jeżeli dobrze rozumiem patrząc na szybko na kod, pod sam koniec jeszcze jeden if w rodzaju "czy właśnie się zjadłem". W tym momencie przerywam przetwarzanie danych - podaję odpowiedź oraz czym prędzej wczytuję i zapominam pozostałe znaki, które już nie będą miały znaczenia.

Bardziej chyba nie jestem w stanie Ci pomóc...

Emocjonująca rozgrywka w węża MWP3_3E

$
0
0

Chodzi Ci o to:
http://www.algorytm.edu.pl/fast-i-o.html ?
to niestety mam to:
"Powyższe funkcje zadeklarowane są w bibliotece cstdio ale mogą być niezdefiniowane w niektórych kompilatorach, np. w Def C++." a korzystam z Code Blocks
A co do pomocy to pomogłeś :slight_smile: tym zdaniem:
"W moim kodzie wykonuję ify dla każdej litery, a w nich ifuję dokładnie
cztery możliwe przypadki. Za każdym razem wykonuję stosunkowo proste
operacje, które nie kosztują wiele czasu."
Mam już pomysł i jutro spróbuję wykonać.....

AL_13_02 - Prezenty

Emocjonująca rozgrywka w węża MWP3_3E

$
0
0

Fast IO obejmuje ogół metod związanych z szybkim wczytywaniem i wypisywaniem danych. Jest to istotne właściwie wyłącznie na potrzeby konkursów i zadań algorytmicznych, choć porządne zadania są na ogół "zabezpieczone" przed takimi "chwytami" odpowiednio dobranymi testami i limitami czasu. Szczęśliwie zabezpieczenia są po to aby je łamać i np. wiedząc, że bardzo trudnym jest rozróżnienie rozwiązania zadania konkursowego działającego w O(n) od działającego w O(nlogn), a także mając świadomość, iż metody fast IO mogą nawet sprawić, że rozwiązanie o gorszej złożoności uzyska czasy lepsze niż rozwiązanie o lepszej złożoności, można "obejść" sędziego.

Opisaną sytuację wymyśliłem samemu, ale jestem prawie pewny, że bardziej praktyczny opis stworzył Stańczyk ("algorytmika Stańczyk" i znajdziesz), który podał swoje metody fast IO, a także napisał jak przy ich użyciu podołał zadaniu, które powinno być rozwiązane w O(n), a on umiał je zrobić jedynie w O(nlogn) i nic lepszego do końca konkursu nie przyszłoby mu do głowy.

Dla mnie to nie jest problem - wystarczy przejść na g++, a przy okazji rozwijać swoją wiedzę o systemach operacyjnych przechodząc na coś lepszego niż Windows :wink: Inna sprawa, że jak wynika z mojego wcześniejszego postu, fast IO obejmuje także inne rozwiązania. Sam uważam, że metody podane we wstawionym przez Ciebie linku są na prawdę świetne, ale jednak używam ich zmodyfikowanej, wg mnie lepszej wersji.

Cieszę się, jeżeli uważasz, że Ci pomogłem. Drugie zdanie jest jednak kluczowe jeżeli chodzi o ewentualne AC. Poza tym mój kod to nie tylko ify, co również zaznaczyłem. No ale wymyślenie jak rozwiązać problem to już zadanie dla Ciebie :wink:

OLD spoj forum

$
0
0

Myślę, że nawet jeżeli wróci to nie na wieczność. Z tego powodu zalecam użytkownikom 1) tworzyć własne "biblioteki" algorytmiczne na podstawie różnych doświadczeń i teorii 2) zapisywać co ciekawsze fragmenty rozwiązań zadań.

Jeżeli ktoś ma / może mieć problem ze wczytywaniem danych - warto zapisać na dysku wszystkie sposoby wczytywania danych.
Jeżeli ktoś nie chce klepać więcej niż raz w życiu algorytm geometryczny - warto zrobić to raz a porządnie, stworzyć kod, w którym 2/3 linii to treściwe komentarze gwarantujące pełne zrozumienie programu oraz zapisać go na dysku.

W żadnym wypadku nie należy polegać tylko na SPOJu, np. uznawać, że treści na forum będą tam zawsze, albo że SPOJ będzie pamiętał na wieki wieków przesłane (także błędne) rozwiązania.


PP0601B - Podzielność C#

$
0
0

Nie wiem jak to jest, że w Visualu działa, u mnie na ideone też błędu nie pokazywało a u Ciebie wyskakują błędy

PP0601B - Podzielność C#

$
0
0

Nic takiego, zwykła magia :wink:

A tak na serio, przyjrzyj się bardziej i dokładniej "moim" testom. Najlepiej zaznacz myszką [tak jak do kopiowania] i ewentualnie skopiuj do swojego edytora.

Jeżeli nadal nie widzisz różnicy, to takie pytanie:
Czy w "moicm" teście po danych jest enter [EOL], czy spacja +enter [EOL]? I właśnie to powoduje błąd.

MWP3_1B1 - Dlaczego rozwiązanie błędne?

$
0
0

Odpisuję po latach. Mój program, który dostał AC ma inną wartość dla testu numer 8 (V zamiast -). Oraz inny iloczyn, ale raczej mój jest poprawny (więcej zer na końcu, a w iloczynie występuje wiele dziesiątek i pięćdziesiątek).

Coby kiedyś nie zniknęło z ideone wklejam testy:

input.txt (9.6 KB)
output.txt (1.5 KB)

MWP3_1B1 - Dlaczego rozwiązanie błędne?

$
0
0

Niby że co!? :wink: Jak twoje wklejenie może zapobiec czemukolwiek? Jak zniknie forum to razem z twoim wklejeniem. I co discuss ma wspólnego z ideone.com oraz pl.spoj.com?

W pierwszej linii wejścia znajduje się jedna liczba naturalna N (1 ≤ N ≤ 10) określająca ilość par bierek.

Wiec tamten test jest raczej błędny i jest bezznaczenia, jaki jest iloraz oraz pewnie w takim razie wynik dla 8 zestawu.

MWP3_1B1 - Dlaczego rozwiązanie błędne?

$
0
0

Nie pojmuję o czym piszesz, nic nie pisałem o zniknięciu forum. Napisałem, żę jeżeli zniknie z ideone, padnie ideone, albo autor tematu usunie swój link do ideone to wklejam po to testy by były na forum.

Wiec tamten test jest raczej błędny i jest bezznaczenia, jaki jest iloraz oraz pewnie w takim razie wynik dla 8 zestawu.

Rozumiem, że w zadaniu będzie (1 ≤ N ≤ 10), ale dlaczego z tego powodu wynik dla 8 zestawu miałby być bez znaczenia? I jaki iloraz w ogóle?

Nie ogarniam o czym piszesz. Niemniej... chciałem by testy były dostępne na forum to je wkleiłem. Napisz co zrobiłem źle, bo nie wiem... czy ja czegoś oczywistego nie dostrzegam?

Viewing all 22527 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>