Size: a a a

2019 November 10

V

Vik in #UWDC
"неубывания массивов неотрицательных целых чисел" с русским языком туговато
источник

ИШ

Игорь Шевченко in #UWDC
Игорь Шевченко
Похоже на сортировку подсчетом
Разверну: завести массив a из 101 нуля, инкрементить a[i] каждый раз, когда i встречается во входных массивах. Затем пройтись по этому массиву и для каждого i > 0 вывести его a[i] количество раз. Кажется, работает за O(k*n), а отсортированы входные массивы только чтобы запутать.
источник

PE

Peter Evsikov in #UWDC
Игорь Шевченко
Разверну: завести массив a из 101 нуля, инкрементить a[i] каждый раз, когда i встречается во входных массивах. Затем пройтись по этому массиву и для каждого i > 0 вывести его a[i] количество раз. Кажется, работает за O(k*n), а отсортированы входные массивы только чтобы запутать.
4
6 2 26 64 88 96 96
4 8 20 65 86
7 1 4 16 42 58 61 69
1 84


Я делаю следующее:
Собираю все эти строки в единый массив, получаю что-то типа [2 26 64 88 96 96 8 20 65 86  1 4 16 42 58 61 69 84]
Затем Этот массив сортирую, но нет, на больших входных данных тест валится
const fs = require('fs');
var readline = require('readline');
var rl = readline.createInterface(process.stdin, process.stdout);

//rl.prompt(); // todo: comment

let lines = [];
rl.on('line', function(line) {
 lines.push(line.split(' ').map(Number));
}).on('close',function(){
 let merged = [];
 for (let i = 1; i < lines.length; i++) {
   merged = merged.concat(lines[i].slice(1));
 }
 
 function sort(arr)
 {
   var n = arr.length, Count = [], B = [];
   for (var i = 0; i < n; i++) Count[ i ] = 0;
   for (var i = 0; i < n-1; i++)
   { for (var j = i+1; j < n; j++)
   { if (arr[ i ] < arr[j]) Count[j]++;
   else Count[ i ]++;
   }
   }
   for (var i = 0; i < n; i++) B[Count[ i ]] = arr[ i ];
   return B;
 }
 let sorted = sort(merged)
 fs.appendFileSync('output.txt', sorted.join(' '));
});
источник

ИШ

Игорь Шевченко in #UWDC
Peter Evsikov
4
6 2 26 64 88 96 96
4 8 20 65 86
7 1 4 16 42 58 61 69
1 84


Я делаю следующее:
Собираю все эти строки в единый массив, получаю что-то типа [2 26 64 88 96 96 8 20 65 86  1 4 16 42 58 61 69 84]
Затем Этот массив сортирую, но нет, на больших входных данных тест валится
const fs = require('fs');
var readline = require('readline');
var rl = readline.createInterface(process.stdin, process.stdout);

//rl.prompt(); // todo: comment

let lines = [];
rl.on('line', function(line) {
 lines.push(line.split(' ').map(Number));
}).on('close',function(){
 let merged = [];
 for (let i = 1; i < lines.length; i++) {
   merged = merged.concat(lines[i].slice(1));
 }
 
 function sort(arr)
 {
   var n = arr.length, Count = [], B = [];
   for (var i = 0; i < n; i++) Count[ i ] = 0;
   for (var i = 0; i < n-1; i++)
   { for (var j = i+1; j < n; j++)
   { if (arr[ i ] < arr[j]) Count[j]++;
   else Count[ i ]++;
   }
   }
   for (var i = 0; i < n; i++) B[Count[ i ]] = arr[ i ];
   return B;
 }
 let sorted = sort(merged)
 fs.appendFileSync('output.txt', sorted.join(' '));
});
Да, это решение в требуемую асимптотику не влезает. Единый массив получается размера k * n, и сортировка происходит за O(k * n * log (k * n))
источник

ИШ

Игорь Шевченко in #UWDC
Peter Evsikov
4
6 2 26 64 88 96 96
4 8 20 65 86
7 1 4 16 42 58 61 69
1 84


Я делаю следующее:
Собираю все эти строки в единый массив, получаю что-то типа [2 26 64 88 96 96 8 20 65 86  1 4 16 42 58 61 69 84]
Затем Этот массив сортирую, но нет, на больших входных данных тест валится
const fs = require('fs');
var readline = require('readline');
var rl = readline.createInterface(process.stdin, process.stdout);

//rl.prompt(); // todo: comment

let lines = [];
rl.on('line', function(line) {
 lines.push(line.split(' ').map(Number));
}).on('close',function(){
 let merged = [];
 for (let i = 1; i < lines.length; i++) {
   merged = merged.concat(lines[i].slice(1));
 }
 
 function sort(arr)
 {
   var n = arr.length, Count = [], B = [];
   for (var i = 0; i < n; i++) Count[ i ] = 0;
   for (var i = 0; i < n-1; i++)
   { for (var j = i+1; j < n; j++)
   { if (arr[ i ] < arr[j]) Count[j]++;
   else Count[ i ]++;
   }
   }
   for (var i = 0; i < n; i++) B[Count[ i ]] = arr[ i ];
   return B;
 }
 let sorted = sort(merged)
 fs.appendFileSync('output.txt', sorted.join(' '));
});
Ой, извиняюсь, я сначала решил, что стандартная сортировка используется. Тут вообще O(k² * n²). А что это за алгоритм?
источник

r

raven428 in #UWDC
Peter Evsikov
Нет, не регался
Возможно, это то, что нужно. Уведомления на почту там за деньги, однако есть такое на самом сайте.
источник

PE

Peter Evsikov in #UWDC
raven428
Возможно, это то, что нужно. Уведомления на почту там за деньги, однако есть такое на самом сайте.
да я нашел тут http://fanserial.net/
там в самом низу
источник
2019 November 11

AK

Alan Khugaev in #UWDC
Peter Evsikov
Даны k отсортированных в порядке неубывания массивов неотрицательных целых чисел, каждое из которых не превосходит 100. Требуется построить результат их слияния: отсортированный в порядке неубывания массив, содержащий все элементы исходных k массивов.

Длина каждого массива не превосходит 10 ⋅ k.

Постарайтесь, чтобы решение работало за время k ⋅ log(k) ⋅ n, если считать, что входные массивы имеют длину n.

Формат ввода
Первая строка входного файла содержит единственное число k, k ≤ 1024.

Каждая из следующих k строк описывает по одному массиву. Первое число каждой строки равняется длине соответствующего массива, оставшиеся числа этой строки описывают значения элементов этого же массива. Элементы массивов являются неотрицательными целыми числами и не превосходят 100.

Формат вывода
Выходной файл должен содержать отсортированный в порядке неубывания массив, содержащий все элементы исходных массивов.

Пример
Ввод
4
6 2 26 64 88 96 96
4 8 20 65 86
7 1 4 16 42 58 61 69
1 84

Вывод
1 2 4 8 16 20 26 42
58 61 64 65 69 84 86
88 96 96
Очень похоже на сортировку слиянием.
https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%BB%D0%B8%D1%8F%D0%BD%D0%B8%D0%B5%D0%BC
На последний её шаг.
Можно входные данные разбить на группы по 2, и сливать их.
источник

AK

Alan Khugaev in #UWDC
Сортировка подсчетом да будет быстрее😇
источник

ВИ

Вадим Исаканов in #UWDC
Ехху
Доклад с UWDC (https://uwdc.ru/lectures/frontend/figma-to-react) попал на крупнейшую фронтенд конференцию России
https://holyjs-moscow.ru/2019/msk/talks/6z9fi4iybdizf9t1u7fyev/
@AIVolkov смотри, каких спикеров вы подготовили))
источник

ВИ

Вадим Исаканов in #UWDC
И еще один доклад с челябинского митапа по Kubernetes (https://sysadminka.timepad.ru/event/1021691/, доклад Павла Селиванова, он тоже выступал на UWDC) взял второе место в рейтинге докладов на недавнем DevopsConf.
И про девопс я больше знаю, половина наших спикеров обычно является хедлайнерами на крупнейших конфах в России.
Крч, UWDC тоже вполне себе в ряду крупнейших конф в России.
источник

Ю

Юрий in #UWDC
👍
источник

АВ

Алексей Волков in #UWDC
Вадим Исаканов
Ехху
Доклад с UWDC (https://uwdc.ru/lectures/frontend/figma-to-react) попал на крупнейшую фронтенд конференцию России
https://holyjs-moscow.ru/2019/msk/talks/6z9fi4iybdizf9t1u7fyev/
@AIVolkov смотри, каких спикеров вы подготовили))
мы старались! 🙂
источник

ВИ

Вадим Исаканов in #UWDC
https://www.youtube.com/watch?v=O7MV5K6wDhM
вуххх! Алексей, в каментах к видео с нашей конфы просят этот доклад на английском
источник

АВ

Алексей Волков in #UWDC
@severenit посмотри коммент выше ^^^ 🙂
источник

ZZ

Zar Zakharov in #UWDC
Мы только что отчитали бомбически эту тему на HolyJS
источник

ВИ

Вадим Исаканов in #UWDC
Zar Zakharov
Мы только что отчитали бомбически эту тему на HolyJS
дада, как раз обсуждаем )
источник

ZZ

Zar Zakharov in #UWDC
Там все намного круче подробнее и масштабнее
источник

ВИ

Вадим Исаканов in #UWDC
привет!
источник

ZZ

Zar Zakharov in #UWDC
Привет) Видели?
источник