CF1895
题意:你在数轴原点。有一个宝箱在 \(x\),钥匙在 \(y\)。每移动一单位,耗费 \(1\) 时间。你可以到了 \(x\) 然后抱着宝箱走,但是抱着宝箱走的总路程不能超过 \(k\) 单位。如果某时刻你、钥匙、宝箱在同一个单位上,就能开宝箱。问:最快要多久开宝箱?
要么是拿钥匙,向宝箱走;要么是去抱着宝箱,向钥匙走 \(k\) 单位,或者直接走到钥匙那里。两种情况取 \(\min\) 即可。
给定一个长 \(2n\) 的数组,将其分为 \(n\) 个 pair 表示 \(n\) 个点。定义 \(s_i\) 为第 \(i\) 个点与第 \(i+1\) 个点的曼哈顿距离,请最小化 \(\sum_{i=1}^{n-1} s_i\)。
显然,如果两个点之间插入一个两个坐标都在它们之间的点,答案不会变。
所以数组排序,让 \((a[1],a[2n])\) 作为第一个点,\((a[n],a[n+1])\) 作为最后一个点,答案就是它俩的曼哈顿距离。
题意:给出 \(n\) 个字符串(\(len\le 5\)),每个字符都是数字。问有多少对字符串拼起来之后,前半部分的数字和等于后半部分?(若拼起来不是偶数长度,忽略)
关注:给出的长度 \(\le 5\),直接枚举哪两种长度的字符串拼在一起,用个 \(map\) 记录就行了。
题意:给出一个长 \(n-1\) 的数组 \(b\),\(b_i=a_i\bigoplus a_{i+1}\)。要求能否构造一个数组 \(a\) 满足 \(b\),且 \(a_i\in [0,n-1]\)。
令 \(s_i=b_1\bigoplus\dots\bigoplus b_i\),则 \(s_i=a_1\bigoplus a_{i+1}\)。将 \(s_i\) 插入 01-Trie 中。
枚举 \(a_1:0\sim n-1\),查询此时 \(a_1\) 与哪个 \(s\) 异或最大,看这个最大值是否超过 \(n-1\):如果没超过,\(a_1\) 就决定好了,可以输出。
小 A 和小 B 在打牌,各有 \(n,m\) 张牌。每张牌有自己的攻击力和防御。小 A 先手。
一张牌 \(a\) 能打败另一张牌 \(b\),当且仅当 \(a.attack>b.defence\)。
每当对手打出一张牌,此时的人就必须打出一张能打败它的牌;否则此时的人就输了。当一张牌被打败,它会回到主人手中。
问当两人绝顶聪明,最终的结果是谁赢或者平局。
首先一个局面可以用正打出来的那张牌来代表。把一个局面抽象成一个结点,构建一张有向图。这已经是一个解法,但是是 \(O(nm)\) 的。因为边数是 \(O(nm)\) 的。
尝试优化边数。发现每次打出去的牌,一定是能击败对面的,防御值最高的牌。将两人的牌按攻击排序,求后缀防御最大值,再套一个二分,就可以求出每个人会使用哪张牌来击败对面的哪张牌。
此时的边数就被优化到 \(O(n)\) 级别了,一次 dfs 搞定。
复杂度 \(O(n\log n)\)。(排序、二分的复杂度)
定义一个长度为 \(n\) 的非负整数序列是 Fancy 的,当且仅当:
\(\exists i \in [1,n]\),\(a_i\in[x, x + k - 1]\)。
\(\forall i\in [2, n]\),\(|a_i - a_{i - 1}| \leq k\)。
多测,给定 \(n,x,k\),求有多少 Fancy 序列,答案对 \(10^9 + 7\) 取模。
\(1\leq n,k\leq 10^9\),\(0\leq x\leq 40\)。
直接求两个条件,很难;所以我们改为求满足第二个条件,但是违反第一个条件的个数。
由于第二个条件,所以 \(a\) 要么全部属于 \([0,x)\),要么属于 \((x+k-1,M]\),其中 \(M\) 代表上界,可以视为 \(10^{500}\)。
令 \(f(l,r)\) 为违反第一个条件、满足第二个条件、所有元素都在 \([l,r]\) 内的 \(\{a\}\) 的数量。则我们要求的就是 \(f(0,M)-f(0,x-1)-f(x+k,M)\)。
由条件二的做差,考虑将 \(a\) 转用差分数组表示。记差分数组为 \(\triangle\)。
记 \(cnt(l,r,\triangle)\):固定了差分数组为 \(\triangle\) 后,有多少个 \(a_1\) 使得 \(\{a\}\) 中每个元素都在 \([l,r]\) 之间。
则 \(f(l,r)=\displaystyle\sum_{\triangle}cnt(l,r,\triangle)\)。
随机推荐
- 每天学五分钟 Liunx 1000 | 软件篇:源码安装
软件安装流程 前面软件篇提到了通过 RPM 和 YUM 在线安装的机制安装软件,除了这两种方式之外还有一种通过源码来安装软件的方式.
- Feign源码解析7:nacos loadbalancer不支持静态ip的负载均衡
背景 在feign中,一般是通过eureka.nacos等获取服务实例,但有时候调用一些服务时,人家给的是ip或域名,我们这时候还能用Feign这一套吗? 可以的. 有两种方式,一种是直接指定url: ...
- [转帖]Data Types
https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html#GUID-A3C0D836-BA ...
- [转帖]linux之iftop命令
https://rumenz.com/rumenbiji/linux-iftop.html Linux安装iftop > yum install iftop -y > iftop 界面如下 ...
- [转帖]KingbaseES不同字符类型比较转换规则
https://www.cnblogs.com/kingbase/p/14798059.html Postgresql 常用的字符数据类型的有char.varchar和text,其中 char 固定长 ...
- [转帖]decimal,float和double的区别是什么?
https://zhuanlan.zhihu.com/p/352503879 今天复习mysql理论知识,在看常用数据类型的时候发现float和decimal类型都是表示小数,就展开搜索学习了一下区别 ...
- 不同linux发行版 FIO测试结果总结
不同linux发行版 FIO测试结果总结 背景 机器来源 配置: 2路28核心Golden 6330 2.0Ghz 512G内存 硬盘 24块 960G SSD (22块 Raid5 + 2块 hot ...
- [转帖]jcmd命令详解
1 基本知识 jcmd 是在 JDK1.7 以后,新增了一个命令行工具. jcmd 是一个多功能的工具,相比 jstat 功能更为全面的工具,可用于获取目标 Java 进程的性能统计.JFR.内存使用 ...
- [转帖]Sosreport:收集系统日志和诊断信息的工具
https://zhuanlan.zhihu.com/p/39259107 如果你是 RHEL 管理员,你可能肯定听说过 Sosreport :一个可扩展.可移植的支持数据收集工具.它是一个从类 Un ...
- [转帖]Web性能优化工具WebPageTest(三)——本地部署(Windows 7版本)
http://www.zlprogram.com/Show/30/30117.shtml 这次先能够使用PC端的浏览器测试,首先需要下载官方的发布版本"WebPageTest 3.0&quo ...