regular backup

This commit is contained in:
arielherself 2024-09-14 01:38:00 +08:00
parent 7b4fe8e93c
commit d6a51ead4c
Signed by: arielherself
SSH Key Fingerprint: SHA256:AK3cyo9tFsp7Mox7K0sYphleC8hReXhnRKxwuDT5LBc
6 changed files with 100 additions and 15 deletions

View File

@ -39,8 +39,14 @@ in {
name = arielherself name = arielherself
[gpg "ssh"] [gpg "ssh"]
program = ${pkgs._1password-gui}/bin/op-ssh-sign program = ${pkgs._1password-gui}/bin/op-ssh-sign
[safe]
directory = /mnt/fdos_server/OS-24Fall-FDU
''; '';
}; };
"Documents" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Dropbox/arch/Documents";
recursive = false;
};
}; };
xdg.configFile = { xdg.configFile = {
@ -133,12 +139,13 @@ in {
pkgs.lua-language-server pkgs.lua-language-server
pkgs.cmake-language-server pkgs.cmake-language-server
pkgs.nil # Nix language server pkgs.nil # Nix language server
pkgs.asm-lsp # Assembly language server
pkgs.nodePackages.typescript-language-server pkgs.nodePackages.typescript-language-server
pkgs.nodePackages.vls # Vue language server pkgs.nodePackages.vls # Vue language server
pkgs.nodePackages.prettier pkgs.nodePackages.prettier
unstable.markdown-oxide unstable.markdown-oxide
pkgs.helix pkgs.helix
pkgs.zed-editor unstable.zed-editor
pkgs.xfce.mousepad pkgs.xfce.mousepad
# Tools # Tools
@ -166,12 +173,16 @@ in {
unstable._1password-gui unstable._1password-gui
pkgs.nix-index pkgs.nix-index
pkgs.rclone pkgs.rclone
pkgs.sshfs
# Pwn # Pwn
pkgs.nmap pkgs.nmap
pkgs.inetutils pkgs.inetutils
pkgs.samba pkgs.samba
# Java
pkgs.jdk22
# Python # Python
(pkgs.python312.withPackages (ps: with ps; [ (pkgs.python312.withPackages (ps: with ps; [
])) ]))

View File

@ -660,7 +660,7 @@ lspconfig.clangd.setup {
lspconfig.pyright.setup { lspconfig.pyright.setup {
capabilities = capabilities capabilities = capabilities
} }
lspconfig.tsserver.setup { lspconfig.ts_ls.setup {
capabilities = capabilities capabilities = capabilities
} }
lspconfig.rust_analyzer.setup { lspconfig.rust_analyzer.setup {

View File

@ -0,0 +1,25 @@
return [=[
// in-place modification
int basis(vector<ll>& a) {
int n = a.size();
int has = 0;
for (int i = 63; ~i and has < n; --i) {
for (int j = has; j < n; ++j) {
if (a[j] & (ll(1) << i)) {
swap(a[j], a[has]);
break;
}
}
if (not (a[has] & (ll(1) << i))) continue;
for (int j = 0; j < n; ++j) {
if (j == has) continue;
if (a[j] & (ll(1) << i)) {
a[j] ^= a[has];
}
}
++has;
}
return has;
}
]=]

View File

@ -45,6 +45,7 @@ vector<int> multiply(const vector<int>& a, const vector<int>& b) {
fft(A, true); fft(A, true);
vector<int> res(n); vector<int> res(n);
transform(A.begin(), A.end(), res.begin(), expr(int(round(x.real())), auto&& x)); transform(A.begin(), A.end(), res.begin(), expr(int(round(x.real())), auto&& x));
res.resize(a.size() + b.size() - 1);
return res; return res;
} }

View File

@ -50,19 +50,6 @@ ls.add_snippets(nil, {
} }
}) })
local fhq_treap = require('snippets.fhq-treap')
ls.add_snippets(nil, {
cpp = {
snip({
trig = 'treap',
namr = 'fhq_treap',
dscr = 'FHQ Treap',
},{
text(lines(fhq_treap))
})
}
})
local bit = require('snippets.bit') local bit = require('snippets.bit')
ls.add_snippets(nil, { ls.add_snippets(nil, {
cpp = { cpp = {
@ -102,6 +89,19 @@ ls.add_snippets(nil, {
} }
}) })
local sparse_table_2d = require('snippets.sparse-table-2d')
ls.add_snippets(nil, {
cpp = {
snip({
trig = 'sparse_table_2d',
namr = 'sparse_table_2d',
dscr = '2D Sparse Table',
},{
text(lines(sparse_table_2d))
})
}
})
local hash_vec = require('snippets.hash-vec') local hash_vec = require('snippets.hash-vec')
ls.add_snippets(nil, { ls.add_snippets(nil, {
cpp = { cpp = {
@ -326,3 +326,16 @@ ls.add_snippets(nil, {
}) })
} }
}) })
local basis = require('snippets.basis')
ls.add_snippets(nil, {
cpp = {
snip({
trig = 'basis',
namr = 'basis',
dscr = 'Bit-mask space basis',
},{
text(lines(basis))
})
}
})

View File

@ -0,0 +1,35 @@
return [=[
template<typename _Tp, typename _Op = function<_Tp(const _Tp&, const _Tp&)>> struct sparse_table_2d {
_Op op;
vector<vector<vector<vector<_Tp>>>> st;
sparse_table_2d(const vector<vector<_Tp>>& a, _Op&& __operation) {
op = __operation;
int n = a.size();
int m = int(log2(n) + 1);
st = vector(n, vector(n, vector(m, vector<_Tp>(m))));
for (int k = 0; k < m; ++k) {
for (int l = 0; l < m; ++l) {
for (int i = 0; i + (1 << k) <= n; ++i) {
for (int j = 0; j + (1 << l) <= n; ++j) {
if (k == 0) {
if (l == 0) {
st[i][j][k][l] = a[i][j];
} else {
st[i][j][k][l] = op(st[i][j][k][l - 1], st[i][j + (1 << l - 1)][k][l - 1]);
}
} else {
st[i][j][k][l] = op(st[i][j][k - 1][l], st[i + (1 << k - 1)][j][k - 1][l]);
}
}
}
}
}
}
_Tp query(size_t x1, size_t y1, size_t x2, size_t y2) {
int s1 = lg2(x2 - x1 + 1);
int s2 = lg2(y2 - y1 + 1);
return op(st[x1][y1][s1][s2], op(st[x2 - (1 << s1) + 1][y1][s1][s2], op(st[x1][y2 - (1 << s2) + 1][s1][s2], st[x2 - (1 << s1) + 1][y2 - (1 << s2) + 1][s1][s2])));
}
};
]=]