Size: a a a

2020 June 18

DE

Denis Efremov in pro.js
Может не эту прямо, но очень похожую и тоже с задачей по перформансу
источник

DE

Denis Efremov in pro.js
Смотри как переворачивать:
источник

DE

Denis Efremov in pro.js
['I', 2, 7]

0b0011001100 ^ 0b0111111000
источник

L

Lupusregina[beta] in pro.js
Denis Efremov
['I', 2, 7]

0b0011001100 ^ 0b0111111000
то есть не по одному биту менять, а сразу 32
источник

DE

Denis Efremov in pro.js
Ну XOR
источник

t

th.witness in pro.js
Lupusregina[beta]
то есть не по одному биту менять, а сразу 32
Уже попробовал брать инвертируемый промежуток, инвертировать XOR-ом и вставлять обратно?
источник

L

Lupusregina[beta] in pro.js
th.witness
Уже попробовал брать инвертируемый промежуток, инвертировать XOR-ом и вставлять обратно?
нет пока
источник

L

Lupusregina[beta] in pro.js
я делал через отдельные байты
источник

L

Lupusregina[beta] in pro.js
сейчас попробую через i32
источник

L

Lupusregina[beta] in pro.js
поидее в 32 раза быстрее будет
источник

DE

Denis Efremov in pro.js
function binarySimulation(s, q){
 const result = []
 for (let i = 0; i < q.length; i += 1) {
   if (q[i][0] === 'I') {
     const start = q[i][1] - 1
     const length = q[i][2] - start
     const arr = new Array(10).fill(0)
     arr.splice(start, length, ...'1'.repeat(length))
     s = (Number(`0b${s}`) ^ Number(`0b${arr.join('')}`)).toString(2).padStart(10, 0)
     console.log(s)
   }
   if (q[i][0] === 'Q') {
     result.push(s[q[i][1] - 1])
   }
 }
 return result
}


Только с минусом осталось решить
источник

L

Lupusregina[beta] in pro.js
Denis Efremov
function binarySimulation(s, q){
 const result = []
 for (let i = 0; i < q.length; i += 1) {
   if (q[i][0] === 'I') {
     const start = q[i][1] - 1
     const length = q[i][2] - start
     const arr = new Array(10).fill(0)
     arr.splice(start, length, ...'1'.repeat(length))
     s = (Number(`0b${s}`) ^ Number(`0b${arr.join('')}`)).toString(2).padStart(10, 0)
     console.log(s)
   }
   if (q[i][0] === 'Q') {
     result.push(s[q[i][1] - 1])
   }
 }
 return result
}


Только с минусом осталось решить
эээ
источник

L

Lupusregina[beta] in pro.js
так ты не решишь
источник

L

Lupusregina[beta] in pro.js
стока динамики в цикле
источник

L

Lupusregina[beta] in pro.js
Denis Efremov
function binarySimulation(s, q){
 const result = []
 for (let i = 0; i < q.length; i += 1) {
   if (q[i][0] === 'I') {
     const start = q[i][1] - 1
     const length = q[i][2] - start
     const arr = new Array(10).fill(0)
     arr.splice(start, length, ...'1'.repeat(length))
     s = (Number(`0b${s}`) ^ Number(`0b${arr.join('')}`)).toString(2).padStart(10, 0)
     console.log(s)
   }
   if (q[i][0] === 'Q') {
     result.push(s[q[i][1] - 1])
   }
 }
 return result
}


Только с минусом осталось решить
вот реф мой
const binarySimulation = (
 s, q,
 a = s.split("").map(Number),
 m = {
   I: (a, r, _, s, e) => Array(e - s + 1).fill(0).map((_, i, C, j = i + s - 1) => a[j] = +!a[j]),
   Q: (a, r, _, i) => r.push(a[i - 1]),
 }
) => q
   .reduce((r, v) => (m[ v[0] ](a, r, ...v), r), [])
   .map(String)
источник

t

th.witness in pro.js
Lupusregina[beta]
стока динамики в цикле
Прогони на всякий.
источник

L

Lupusregina[beta] in pro.js
только по времени он не пройдет
источник

DE

Denis Efremov in pro.js
39 прошел
источник

DE

Denis Efremov in pro.js
Lupusregina[beta]
только по времени он не пройдет
Как от минусов избавиться?
источник

DE

Denis Efremov in pro.js
У меня все короткие тесты проходит
источник