【必看】如果你是第一次进我的博客的话
如果你我的好亲友且第一次进我的博客不要错过如下的一些东西 图库对电脑端来说在这个位置当鼠标移上去就会看到图库的名字啦 对手机端来说好像不说的话可能有点隐蔽(在这个位置点一下这三条杠就会看到图库的位置啦 一些奇奇怪怪的表头还没准备好放什么东西(如果嫌麻烦的话直接输入网址 https://anjins.com/album/ 也是可以的! 评论在大部分页面拉到底端都能看到评论的功能,如果没看到或者看到了没看见任何评论和写评论的入口,要么是你卡了(或者说我的服务端有点垃圾(x)刷新一下就行。在邮箱处填入QQ邮箱即可自动同步QQ的头像,不要乱写别人的哦我看见乱搞的评论会隐藏和删除。 图例:卡了的情况正常的情况 总体来说我会尽量更新一些有意思的东西在博客(但是我很懒,所以只是尽量
单调队列优化dp理解小汇总
回顾单调队列主要思想单调队列可以维护当前点前面一段区间里的答案来进行转移,通过保持单调性来保留最优且最新的答案,把旧的答案直接跳过。 模板 12345678910for (int i = 1; i <= n + 1; i++) { if (i - Q.front() > k) Q.pop_front(); dp[i] = dp[Q.front()] + a[i]; while (!Q.empty() && dp[Q.back()] >= dp[i]) Q.pop_back(); if (s[i] == '1') { Q.clear(); } Q.push_back(i); // cout << dp[i] << " ";} B.Ropeway观察题目建模题意解释:可以看作一个数轴上有 $n$ 个点,选取一些点连接,这些点要满足距离不大于...
数位dp小总结
回顾数位DP主要思想数位DP是从按照题目要求匹配数字位,按照我的理解每位的状态分为2种(大部分情况下): 从前面(高位)到现在为止都完全匹配,此时还需要根据约束去走 从前面(高位)到现在有一位解放了约束可以随便放然后按照这个流程去算方案数 M.Xor Sum由异或求和想到拆位异或求和位与位之间是没有联系的,因此只需要考虑一位上的01数量,设有$k$个数,在$p$位有$cnt_1$个1,$k-cnt_1$个0,此时这一位贡献为$(k-cnt_1)*cnt_1 \times...
树上背包类DP理解小汇总
回顾树上背包主要思想这里的树上背包主要是模拟对子树的答案合并的过程,也就是类似设 $dp[u][i]$ 在 $u$ 这个点上使用了 $i$ 的资源,然后与 $v$ 的答案通过背包做合并的过程,以下是一个最基础的模板 1234567891011121314151617function<void(int, int)> dfs = [&] (int u, int fa) -> void { sz[u] = 1; for (auto [v, d] : g[u]) { if (v == fa) continue; dfs(v, u); vi tmp(sz[u] + sz[v] + 1); for (int i = 0; i <= sz[u] - 1; i++) { for (int j = 0; j <= sz[v] - 1; j++) { tmp[i + j + 1] = max(tmp[i...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment
Linux期末
Linux笔记获取系统版本的命令:? Term(终端) 快速启动快捷键 Ctrl+Alt+T 关闭终端 Ctrl+D 命令补齐 Tab 终端清屏 Ctrl+L ß4.光标移动所在行首:Ctrl+A ß5.光标移动所在行尾:Ctrl+E ß6.命令行的删除:Ctrl+U ß7.快捷键6的反面:Ctrl+Y ß8.不同应用之间的切换:Alt+Tab 软件源存在:source.list source shell脚本名 Vim常用命令ß移动光标:gg第一行,G最后一行,XG第X行; ß删除一行:dd 删除单词:dw ß复制一行:yy ß粘贴一行:p Linux的重要概念 自由、 开放、 免费 多任务和多用户 遵守POSIX标准 类Unix操作系统 Linux就是在Minix的基础上开发和设计的。 Redhat——商业化最成功 Debian——纯志愿者,最纯正自由软件 Ubuntu——基于Debian为开发蓝本 红旗Linux Linux的优点⚫ (1)基于Unix设计,性能出色⚫ (2)遵循GPL许可,自由软件⚫ ...
开放实验题解
题目大意有一个长度为n的序列a和长度为m的序列b,最多执行k次操作。对于每个操作:$$ 选择两个索引i (1 \leq i \leq n )和j(1\leq j\leq m),使a_{i}=a_{i} \& b_{j}$$求出$ \min \sum_{i=1}^{n}a_{i}$数据范围$1 \leq n \leq 10^{5}, 1 \leq m \leq 10, 0\leq k \leq nm, 0\leq a_{i}\lt 2^{30},0\leq b_{i} \lt 2^{30}$ 题解对于$ \& $运算,每一个$ a_{i} $只会与每一个$ b_{j} $做一次操作,多次操作没有意义。注意到$ m $的值很小,因此可以对每一个$ a_{i}$做状压dp预处理出$ dp_{i,j}$代表$ a_{i}$做了$ j$次操作后变成的最小值。复杂度$ O(n2^{m})$为$ 1e8$差不多,可以接受。同时$ a_{i} \& b_{j} \& b_{k} = a_{i} \&(b_{j}...
