Блог пользователя z1p0

Автор z1p0, 12 лет назад, По-русски

Привет всем ...Давненько я сюда не заходил — , а причина тому — мое решение разобраться с взаимодействием объектов в ОС Windows :) И все бы ничего , да вот столкнулся я (чисто по интересу) — с паковкой графических файлов — а именно , с алгоритмом JPEG :)

Значит, описываю в чем его суть и в чем суть моей проблемы :

Имеется изображение , а точнее матрица пикселей этого изображения , где элементы матрицы описывают цвета R,G,B ...На первом этапе мы преобразуем наше изображение в формат YCrCb, делая все это дело вот так (Для каждого пикселя нашего изображения):

После этого , мы разбиваем наше изображение на матрицу -8*8 пикселей...Т.е имеем как бы 8 * 8 пикселей и в три раза больше компонент цвета ...Тут же у меня возникает первый вопрос — а если изображение исходное формата 15*7 пикселей , как же нам его тогда разбить на матрицы по 8 пикселей :?(этого я нигде не нашел)...Ну да ладно — , тут еще можно двигаться дальше...А дальше у нас идет...Ммм в общем процитирую учебник , в том числе и предыдущий этап :

"Разбиваем исходное изображение на матрицы 8х8. Формируем из каждой три рабочие матрицы ДКП по 8 бит отдельно для каждой компоненты."

ДКП — дискретно косинусное преобразование ...)

Окей — первое предложение понятно , а вот как понимать второе :?В моем осознании , это как то так :

Берем наши компоненты , и составляем для каждой матрицу 8*8 , и таким образом будем иметь матрицу 8*8 компоненты Y,еще одну 8*8 компоненты Cr и еще одну 8*8 для Cb :?

На этом сам алгоритм не заканчивается ...Однако дальше , думаю стоит говорить разобравшись с предыдущим :)

Надеюсь всем тема покажется интересной , ибо тут , на сколько я знаю сидят люди , кому интересна именно эта часть программирования ,)

Буду рад любому дельному словцу :)

Полный текст и комментарии »

  • Проголосовать: нравится
  • +12
  • Проголосовать: не нравится

Автор z1p0, 13 лет назад, По-русски

В общем вот сама задача :

http://codeforces.net/contest/149/problem/E

А вот разбор к ней ...

Её то саму я решил , но наверняка мое решение будет выдавать TL...Да...и хочется все таки через способ выше указанный, вернее ниже :) Будем решать задачу отдельно для каждой из m строк. Итак, пусть у нас есть строка p, ее длина l, и нам нужно проверить, может ли марсианин ее увидеть.

Введем дополнительные массивы: пусть pref[i] – минимальная позиция в s начала вхождения префикса строки p длиной ровноi, а также пусть suff[j] – максимальная позиция в s конца вхождения суффикса строки p длиной ровно j.

Нетрудно понять, что марсианин сможет увидеть p, если существует такое i, что suff[l - i] ≥ pref[i] + l–1.

Как подсчитать массивы? Для массива pref достаточно найти Z-функцию строки p#s, а для массива suff – Z-функцию строки r(p)#r(s), где r(t) означает перевернутую строку t. Используя массив Z-функций значения массивов suff и pref подсчитать тривиально.

Собственно что такое з функция и т.п я знаю )

Единственное о чем я бы хотел вас , попросить ... Это пояснить как ...вернее что будет происходить на разных этапах алгоритма....Ну если на вводе будет первый пример из тестов:))Я уж извиняюсь , просто программированием как таковым занимаюсь с апреля ... ну и сразу на спортивное перешел )Заранее спс )

Полный текст и комментарии »

  • Проголосовать: нравится
  • +2
  • Проголосовать: не нравится

Автор z1p0, 13 лет назад, По-русски

Все нашел ошибку :(

Полный текст и комментарии »

  • Проголосовать: нравится
  • -17
  • Проголосовать: не нравится

Автор z1p0, 13 лет назад, По-русски

Собственно ,за счет чего участники успевают решать задачи в течение 1 часа , вместо 2 ух положенных , то есть , первую задачу например за 8 минут и т.д ...Это все приходит с опытом , или же все задачи бывают определенных типов , и у участников уже глядя на задачу , есть в голове что то примерное ,что они уже решали, что подходит к данной задаче ? Да и вообще верно ли что для того что бы улучшить свои навыки надо решать и еще раз решать ??Или доп материал нужен ??Ну к примеру вот , я не знаю что такое граф ...??Да и вообще может мне как новичку сможете дать пару советов по улучшению своих навыков ??К примеру , я очень медленно рещаю задачи , даже имея в голове точный алгоритм ...

Кто чем поможет ??

Полный текст и комментарии »

  • Проголосовать: нравится
  • -21
  • Проголосовать: не нравится

Автор z1p0, 13 лет назад, По-русски

Добрый день, я здесь новичок , решил решить для начала пару задач , и взялся за 166 , вроде и решил ее , все мои тесты она прошла на ура , а вот первый тест сайта -не прошла , может может кто чем помочь , я имею ввиду подкинуть нужный тест ??

Или быть может я что то не так написал в программе ( я про то что сервер может не правильно что считывает , из за того что я не знаю правил оформления ) ...

#include <iostream>

using namespace std;

int main()
{
	int n,k,i=0,max,t=0,t1=0;
	cout<<"Enter N and K : "<<endl;
	cin>>n>>k;
	int **sp;
	sp=new int*[n];  
	for(int i = 0 ; i < n ; i++) 
	{	
	sp[i] = new int[2];
	}
	for(int i=0;i<n;i++)
	{
	cout<<"Enter "<<i+1<<" string : "<<endl;
	cin>>sp[i][0]>>sp[i][1];
	}
	if(n<2)
	{
	t=1;
	}
	else
	{
	while(t!=n)
	{
	for(int i=0;i<n;i++)
	{
	if(i+1==n)
	{
	break;
	}
	if(sp[i][0]>sp[i+1][0])
	{
	max=sp[i][0];
	sp[i][0]=sp[i+1][0];
	sp[i+1][0]=max;
	max=sp[i][1];
	sp[i][1]=sp[i+1][1];
	sp[i+1][1]=max;
	}
	}
	t++;
	}
	t=0;
	while(t!=n)
	{
	for(int i=0;i<n;i++)
	{
	if(i+1==n)
	{
		break;
	}
	if(sp[i][1]>sp[i+1][1]&&sp[i][0]==sp[i+1][0])
	{
	max=sp[i][0];
	sp[i][0]=sp[i+1][0];
	sp[i+1][0]=max;
	max=sp[i][1];
	sp[i][1]=sp[i+1][1];
	sp[i+1][1]=max;
	}
	}
	t++;
	}
	t=0;
	for(int i=0;i<n;i++)
	{	
	if(i+1==n)
	{
	if(sp[i][0]==sp[i-1][0]&&sp[i][1]==sp[i-1][1])
	{
	sp[i][2]=t1;
	}
	else
	{
	sp[i][2]=t;
	}
	break;
	}
	if(i==0)
	{
	if(sp[i][0]==sp[i+1][0]&&sp[i][1]==sp[i+1][1])
	{
	t=t1;
	}		
	}
	else
	{
	if(sp[i][0]==sp[i-1][0]&&sp[i][1]==sp[i-1][1])
	{
	t=t1;
	}
	}
	sp[i][2]=t;
	t1=t;
	t++;
	}
	t=0;
	k=sp[n-k][2];
	for(int i=0;i<n;i++)
	{
	if(sp[i][2]==k)
	{
	t++;
	}
	}
	}
	cout<<t<<endl;
	return 0;
}

Если есть ошибки в коде(в плане решения , а не оформления) — просьба не исправлять ) заранее благодарю ...)

Полный текст и комментарии »

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится