11 2024 档案

摘要:首先异或最长路不能用 Bellman-Ford,因为异或不满足加法传递性,局部最优可能推不出整体最优,而且可能出现类似“负环”的情况,走不出来。一般要用线性基解决这一类问题。 我们可以把路径拆成一条链(蓝色)和若干个环(灰色)。我们可以走一条红色的路径到达一个环,转一圈然后原路返回,这样红色的边两次 阅读全文
posted @ 2024-11-27 09:48 XYukari 阅读(8) 评论(0) 推荐(0) 编辑
摘要:数据结构 并查集 vector<int> fa(n + 1); //扩展域并查集注意开n*3+1 iota(fa.begin(), fa.end(), 0); // 带权并查集则同时更新d[x],siz[x] function<int(int)> find = [&](int x) { return 阅读全文
posted @ 2024-11-26 21:44 XYukari 阅读(11) 评论(0) 推荐(0) 编辑
摘要:线段树时间分治解决的问题是一类可离线的,要求支持先修改后撤销,查询某一时间点前修改的总贡献的问题。大致的思路是,在时间轴上建一棵线段树,把 l 时刻修改,r+1 时刻撤销的操作,“区间加”到 [l,r] 区间上。然后遍历线段树所有节点(时间区间),O(nlogn) 阅读全文
posted @ 2024-11-26 14:53 XYukari 阅读(29) 评论(0) 推荐(0) 编辑
摘要:B. Shohag Loves Strings 注意到两个相同字母 aa 的 f(p) 为偶数,所以如果找到两个相邻相同字母输出即可。如果没有相邻相同的两个字母,则说明字符串相邻的字母一定不同,再考察三个相邻的字母的情况,发现三个字母均不同,如 abc 时 f(p) 也为偶数,又找到 阅读全文
posted @ 2024-11-25 21:00 XYukari 阅读(9) 评论(0) 推荐(0) 编辑
摘要:A. lz的吃饭问题 print("lz" if (lambda a,b: a*b)(*map(int, input().split())) < (lambda a,b: a*b)(*map(int, input().split())) else "gzy") B. lz的数字问题 把数字按字符串处 阅读全文
posted @ 2024-11-23 15:13 XYukari 阅读(23) 评论(0) 推荐(0) 编辑
摘要:1. proxy wsl --install Ubuntu-24.04 安装好 wsl 之后,测试了一下 v2rayN 的代理能不能正常使用(用 vultr 服务器搭建的校园网 ipv6 免流),发现可以 curl www.google.com,但是 sudo apt-get update 报错 C 阅读全文
posted @ 2024-11-11 19:31 XYukari 阅读(198) 评论(0) 推荐(0) 编辑
摘要:首先考虑计算 f([a1,a2,,ak]):发现对于在同一条斜线上的 ai, aii 的值是相同的。统计出 aii 的众数 x,则 kx 次操作就可以将这一段变成连续数组。 处理好了第一个长度为 k 的段,向右滑 阅读全文
posted @ 2024-11-10 16:55 XYukari 阅读(4) 评论(0) 推荐(0) 编辑
摘要:D 根据题目给出的构造方式,Sn 的长度会达到 2n 数量级,没法求出 Sn,所以考虑递推。 设 dpi,l,rSiT[l,r] 区间以子序列的方式出现了多少次,可以写出转移方程:\(dp_{i,l,r} 阅读全文
posted @ 2024-11-10 16:53 XYukari 阅读(7) 评论(0) 推荐(0) 编辑
摘要:乘法逆元 给定 n 个正整数 ai,求它们在模 p 意义下的乘法逆元。 逆元是模意义下的倒数,能够将模意义下无法直接计算的除法转化为乘法。先来总结一下常用的求单个逆元的方法: 扩展欧几里得 O(logn) 地求一个数的逆元,要求 a,p 互质即可(\(p 阅读全文
posted @ 2024-11-08 16:23 XYukari 阅读(34) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示