diff --git a/awesome.rc.lua b/awesome.rc.lua index 8c377f3..672f193 100644 --- a/awesome.rc.lua +++ b/awesome.rc.lua @@ -349,7 +349,7 @@ clientkeys = gears.table.join( {description = "toggle fullscreen", group = "client"}), awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, {description = "close", group = "client"}), - awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , + awful.key({ modkey, }, "v", awful.client.floating.toggle , {description = "toggle floating", group = "client"}), awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, {description = "move to master", group = "client"}), diff --git a/home-manager/home.nix b/home-manager/home.nix index 8a40b1b..5d2b888 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -7,8 +7,8 @@ let mypkgs = import (pkgs.fetchFromGitHub { owner = "arielherself"; repo = "mypkgs"; - rev = "dc9d9be"; - hash = "sha256-+SdZ8H4qAcLG6baYb1WU/Sd1Dgh2eo/DHmi2Ig7NAnI="; + rev = "165a9d4"; + hash = "sha256-F9DXUqsF8YwA49mc25MTE/3uiZJm82kImF3KrUyEUTs="; }); in { nixpkgs.config.allowUnfree = true; @@ -163,7 +163,7 @@ in { pkgs.mtr pkgs.htop pkgs.gdb - pkgs.dropbox + mypkgs.dropbox pkgs.brightnessctl pkgs.psmisc pkgs.xclip # Clipboard support @@ -212,7 +212,7 @@ in { pkgs.kdePackages.gwenview # Image viewer pkgs.vlc pkgs.playerctl - pkgs.ffmpeg + pkgs.jellyfin-ffmpeg pkgs.spotify unstable.spotify-player diff --git a/nvim/lua/snippets/bounded-mcmf.lua b/nvim/lua/snippets/bounded-mcmf.lua index 2064aad..62bf16c 100644 --- a/nvim/lua/snippets/bounded-mcmf.lua +++ b/nvim/lua/snippets/bounded-mcmf.lua @@ -2,11 +2,11 @@ return [=[ struct bounded_mcmf { int n, m, S, T; mcmf net; - ll sum; + ll sum, pre; vector fl; vector init; vector costs; - bounded_mcmf(int n, int m) : sum(0), n(n), m(m), S(0), T(n + 1), net(n + 1), fl(m), init(n + 1), costs(m) {} + bounded_mcmf(int n, int m) : sum(0), pre(0), n(n), m(m), S(0), T(n + 1), net(n + 1), fl(m), init(n + 1), costs(m) {} // handle negative loop case void add_edge(int from, int to, ll low, ll high, ll cost, int edge_id = -1) { if (cost < 0) { @@ -27,6 +27,7 @@ struct bounded_mcmf { void __add_edge(int from, int to, ll low, ll high, ll cost, int edge_id = -1) { net.add_edge(from, to, high - low, cost, edge_id, -1); init[to] += low, init[from] -= low; + pre += low * cost; } void prep(int s, int t) { for (int i = 1; i <= n; ++i) { @@ -57,6 +58,7 @@ struct bounded_mcmf { } } } + res_cost += pre; return {{res_flow, res_cost, fl}}; } } @@ -64,6 +66,7 @@ struct bounded_mcmf { optional>> run_mcf(int s, int t) { prep(s, t); auto [res_flow, res_cost] = net.run(S, T); + res_cost += pre; if (sum != res_flow) { return nullopt; } else { diff --git a/nvim/lua/snippets/hld.lua b/nvim/lua/snippets/hld.lua index c45bef1..332ab96 100644 --- a/nvim/lua/snippets/hld.lua +++ b/nvim/lua/snippets/hld.lua @@ -69,9 +69,10 @@ struct HLD { swap(u, v); } tr.range_apply(info[info[u].head].dfn, info[u].dfn, t); + u = info[info[u].head].father; } if (info[u].depth < info[v].depth) swap(u, v); - tr.range_apply(info[v].dfn, info[u].dfn); + tr.range_apply(info[v].dfn, info[u].dfn, t); } Info path_query(int u, int v) { @@ -81,6 +82,7 @@ struct HLD { swap(u, v); } res = res + tr.range_query(info[info[u].head].dfn, info[u].dfn); + u = info[info[u].head].father; } if (info[u].depth < info[v].depth) swap(u, v); res = res + tr.range_query(info[v].dfn, info[u].dfn);