Aktywne Wpisy
robert5502 +133
Prawakom ostatnimi dniami wywalilo wszystkie bezpieczniki uwarunkowane religijną tresura. Obrażonych, urażonych i porażonych jest bez liku.. Dawno nie widzialem takiej histerii. Wszystko po fragmencie ceremonii otwarcia igrzysk, pozniej przy zawieszeniu lizusa Kurskiego "wstało " im jeszcze turbo.
Oczywiście męska prostytutka zaruchana niemal na śmierć na plebanii w Dąbrowie Górniczej chrzescijanstwa nie obraża. Przyzwyczaili sie. Nie obrażały chrześcijaństwa gwalty na dzieciach w osrodku siostr Boromeuszek, czy niezliczona ilosc przestępstw seksualnych na nieletnich w
Oczywiście męska prostytutka zaruchana niemal na śmierć na plebanii w Dąbrowie Górniczej chrzescijanstwa nie obraża. Przyzwyczaili sie. Nie obrażały chrześcijaństwa gwalty na dzieciach w osrodku siostr Boromeuszek, czy niezliczona ilosc przestępstw seksualnych na nieletnich w
dzem_z_rzodkiewki +329
Jak zaraz ludzie z roczników 1995-2005r nie zaczną rodzić więcej dzieci to z tego kraju nie zostanie nic za kilkadziesiąt lat.
Na całe szczęście kredyt 0% Tuska dopłaci najwięcej wyżowi z 1980-1985r, a dla młodszych, którzy nie będą się r%chać w mieszkaniu wynajmowanym na trzech (które zabiera im 50% zarobków) zostanie tylko wzrost cen mieszkań
aj waj
#nieruchomosci
Na całe szczęście kredyt 0% Tuska dopłaci najwięcej wyżowi z 1980-1985r, a dla młodszych, którzy nie będą się r%chać w mieszkaniu wynajmowanym na trzech (które zabiera im 50% zarobków) zostanie tylko wzrost cen mieszkań
aj waj
#nieruchomosci
inline void fastReadint(int *x) {
register int c = getchar_unlocked();
*x = 0;
for(; ((c<48 || c>57) && c != ' '); c = getcharunlocked());
for(; c>47 && c<58 && c != ' ' ; c = getcharunlocked()) {
*x = (*x<<1) + (*x<<3) + c - 48;
}
}_
#programowanie #c #informatyka
2. inline i register nie są przypadkiem ignorowane przez praktycznie wszystkie kompilatory?
3. (x<<1) + (x<<3) wygląda pro, ale clang to optymalizuje do zwykłego x*10 http://goo.gl/eR0vNV
Also: c < '0' || c > '9' wygląda imho czytelniej niż c < 48 || c > 57
Optymalizowanie tego będzie prawdopodobnie sztuką dla sztuki, bo 99.9% czasu będzie spędzone wewnątrz wywołania getchar.
O dziwo gcc 4.3.2 na linuksie nie ignoruje inline ani register. Po wrzuceniu zmiennej do rejestru procesora czas dostępu się skraca(testowałem) - różnica 0.1 sekundy przy dużym wejściu.
Na gcc przesunięcia bitowe działają szybciej niż zwykłe mnożenie, też sprawdzone - różnica
@kleszczydron9000: Przesunięcie bitowe to akurat jedna operacja maszyny, co ciekawe ARM'y (nie wiem jak '86) dostarczają operację shift and multiply i różne ich kombinacje i to zajmuje 2 +/-1 takty zegara na operacje. Więc szukanie tu oszczędności jest mocno na siłę.
Skoro na gcc przesunięcia działają szybciej niż mnożenie na typie int wiedz, że masz stary kompilator. Tu różnice są wyraźne na maszynach typu AVR8.
Zwracanie pojedynczej wartości przez wskaźnik wiąże się z koniecznością pobrania wartości wskaźnika, ustawienia go na odpowiednią lokalizację, pewnie po dwie operacje load i store. Zwracanie przez wartość to raptem odłożenie i zdjęcie jej ze stosu. No i *x = 0 to dodatkowy narzut.
Dodatkowa pętla do kolejne