Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2015, 11:48   #1231
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
у нас же вставка будет.. Не ахти
Вставка отработает не больше 10 раз. А при поиске по дереву накладные расходы по организации рекурсии, маленькие, но очень много раз
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.04.2015, 12:33   #1232
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Устроим соревнование?
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
  c: Cardinal;
  TF: TextFile;
  i, j, k, n: Integer;
  FilmArr: TFilmArr;
  s: AnsiString;
  cur, count: Integer;
  FA: array of Boolean;
  flag: Integer;
begin
  c := GetTickCount;

  AssignFile (TF, ExtractFilePath(ParamStr(0)) + 'input.txt');
  Reset(TF);


  count := 0;
  SetLength (FilmArr, _FILMCOUNT);
  for i := 0 to _FILMCOUNT-1 do begin
    FilmArr[i].Name := '';
    FilmArr[i].Count := 0;
  end;

  SetLength (FA, _FILMCOUNT);

  Readln (TF, n);

  for i := 1 to n do begin
    Readln (TF, s);

    cur := count;
    flag := count-1;
    for j := 0 to count-1 do begin
      if Length(s) = FilmArr[j].Length then begin
        FA[j] := True;
        cur := j;
      end
      else begin
        FA[j] := False;
        Dec(flag);
      end;
    end;

    while flag > 0 do begin
      for k := 1 to Length(s) do begin
        for j := 0 to count-1 do begin
          if FA[j] then begin
            if FilmArr[j].Name[k] = s[k] then
              cur := j
            else begin
              FA[j] := false;
              Dec(flag);
            end;
          end;
        end;
      end;
    end;

    if FilmArr[cur].Count = 0 then begin
      FilmArr[cur].Name := s;
      FilmArr[cur].Length := Length(s);
      Inc (count)
    end;
    Inc (FilmArr[cur].Count);
  end;

  Sort (FilmArr);

  ListBox1.Items.Clear;
  for i := 0 to count-1 do begin
    s := FilmArr[i].Name + ' ' + IntToStr (FilmArr[i].Count);
    ListBox1.Items.Add (s)
  end;

  SetLength (FilmArr, 0);
  CloseFile(TF);

  Button3.Caption := IntToStr (GetTickCount - c);
end;
И без всяких деревов.
Вложения
Тип файла: zip Голосование за фильмы.zip (2.0 Кб, 8 просмотров)

Последний раз редактировалось Sibedir; 06.04.2015 в 12:40.
Sibedir вне форума Ответить с цитированием
Старый 06.04.2015, 16:32   #1233
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
#include <iostream>
#include <string>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
	int n;
	cin >> n;

	string t;
	getline(cin, t);

	map<string, int> v;

	for (int i = 0; i < n; i++)
	{
		string s;
		getline(cin, s);
		v[s]++;
	}
	
	vector<pair<string, int>> s;
	for (map<string, int>::iterator p = v.begin(); p != v.end(); ++p)
		s.push_back(*p);

	sort(s.begin(), s.end(), [](const pair<string, int>& a, const pair<string, int>& b) {return a.second > b.second; });

	for (int i = 0; i < s.size(); i++)
		cout << s[i].first << " " << s[i].second << endl;

	return 0;
}
Например, так
Poma][a вне форума Ответить с цитированием
Старый 06.04.2015, 17:45   #1234
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

За сколько у тебя обрабатывает 1000000 голосов при 1000 фильмах с названиями от 32 до 65 символов.
Короче скинь exe
Входной файл: input.txt
Выходной: output.txt
О фильмах пусть ни чего заранее не известно. Даже сколько их.
Sibedir вне форума Ответить с цитированием
Старый 06.04.2015, 18:18   #1235
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

абракадабра
Вложения
Тип файла: rar acmp.rar (31.7 Кб, 8 просмотров)
Poma][a вне форума Ответить с цитированием
Старый 06.04.2015, 19:18   #1236
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Блин, у тебя x64. ---------------------------
Цитата:
---------------------------
..acmp.exe не является приложением Win32.
---------------------------
ОК
---------------------------
Какой Си установить?
C++Builder XE3 не съел
Код:
	vector<pair<string, int>> s;
Цитата:
[bcc32 Error] File1.cpp(29): E2451 Undefined symbol 's'
Full parser context
File1.cpp(13): parsing: int main()
И много еще чего.

Последний раз редактировалось Sibedir; 06.04.2015 в 19:26.
Sibedir вне форума Ответить с цитированием
Старый 06.04.2015, 19:38   #1237
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

У меня 15-ая студия.. скушать должна любая студия (в 10-ку нужно будет пару заменить, а вот все что после без допила съест)
Poma][a вне форума Ответить с цитированием
Старый 06.04.2015, 19:42   #1238
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Код:
	vector<pair<string, int>> s;
	for (map<string, int>::iterator p = v.begin(); p != v.end(); ++p)
		s.push_back(*p);
Код:
vector<pair<string, int>> s(v.begin(), v.end());
Somebody вне форума Ответить с цитированием
Старый 06.04.2015, 19:45   #1239
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Классно, спасибо!
Poma][a вне форума Ответить с цитированием
Старый 09.04.2015, 00:43   #1240
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Не хочу создавать новую тему.

http://www.gazeta.ru/science/2015/04/08_a_6631493.shtml
Парализованный российский программист готов стать первым человеком, чью голову пришьют к чужому телу. Есть ли шансы на благоприятный исход операции, разбиралась «Газета.Ru».



Цитата:
Как снег на голову свалилось в среду сообщение о том, что итальянский нейрохирург Серджио Канаверо выбрал человека, которому впервые в мире будут пересажено чужое тело. Выбор доктора пал на россиянина, 30-летнего Валерия Спиридонова, программиста из Владимира, который болен тяжелой мышечной атрофией, навсегда приковавшей его к инвалидному креслу.

По словам компьютерщика, он решился на отчаянный шаг, поскольку хочет использовать шанс обрести новое тело перед смертью. «Боюсь ли я? Конечно боюсь. Но это не столько страшно, сколько очень интересно, — рассказал Спиридонов в интервью Daily Mail — Однако надо понимать, что у меня не так много вариантов. Если я упущу этот шанс, моя судьба будет незавидной. Каждый новый год ухудшает мое состояние». Известно, что пока доктор и его будущий пациент еще не встречались, Канаверо не изучал историю болезни Спиридонова и они только общались по Skype.
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
интересные проги kipish Софт 85 18.12.2022 01:03
Текст на картинках SunLight Microsoft Office Word 2 08.08.2007 12:59