题解 ABC216H Random Robots】的更多相关文章

link Solution 考虑一个不合法方案,它一定最后位置的逆序对数不为 \(0\),而且可以发现的是,存在对称方案使得最后逆序对数奇偶性不同,所以我们如果加上 \((-1)\)^{\sigma(P)} (即逆序对数奇偶性),那么两者就会抵消掉. 所以可以枚举一个点的最后位置,用状压 dp 解决. Code #include <bits/stdc++.h> using namespace std; #define Int register int #define mod 998244353…
题面 有 K K K 个机器人初始分别位于数轴上 x 1 , x 2 , . . . , x K x_1,x_2,...,x_{K} x1​,x2​,...,xK​ 的整点位置. 接下来会经历 N N N 秒,每一秒都会发生如下事件: 每个机器人分别有一半的概率停住不动,有一般的概率往坐标轴正方向移动一单位距离.每个机器人的移动是同时进行的. 问机器人互相不碰撞的概率是多少.对 998244353 998244353 998244353 取模. 2 ≤ K ≤ 10 , 1 ≤ N ≤ 1000…
[题解]ARC101F Robots and Exits(DP转格路+树状数组优化DP) 先删去所有只能进入一个洞的机器人,这对答案没有贡献 考虑一个机器人只能进入两个洞,且真正的限制条件是操作的前缀\(\min \max\),我们直接按照前缀\(\min \max\)\(DP\) 把前缀\(\min \max\)设成坐标,转成格路问题,现在就变成了平面上有若干点要用一条折线分开这些点使得\(n\)对配对点在平面的两侧. 由于我们要保证方案不重,所以要钦定经过某个配对关系的下面那个点,转移方程是…
(其实是贺的:https://www.luogu.com.cn/paste/whl2joo4) 目录 LGV 引理 不相交路径计数 例题 Luogu6657. [模板]LGV 引理 CF348D Turtle Monotonic Matrix 习题 Reference LGV 引理 LGV 引理,即 Lindström–Gessel–Viennot lemma . 一个带权 DAG \(G\) 中有起点集 \(A=\{a_1, a_2, \cdots, a_n\}\),终点集 \(B=\{b_1…
Binary Search基础 应用于已排序的数据查找其中特定值,是折半查找最常的应用场景.相比线性查找(Linear Search),其时间复杂度减少到O(lgn).算法基本框架如下: //704. Binary Search int search(vector<int>& nums, int target) { //nums为已排序数组 ,j=nums.size()-; while(i<=j){ ; if(nums[mid]==target) return mid; ; ;…
Hash Table基础 哈希表(Hash Table)是常用的数据结构,其运用哈希函数(hash function)实现映射,内部使用开放定址.拉链法等方式解决哈希冲突,使得读写时间复杂度平均为O(1). HashMap(std::unordered_map).HashSet(std::unordered_set)的原理与Hash Table一样,它们的用途广泛.用法灵活,接下来侧重于介绍它们的应用. 相关LeetCode题: 706. Design HashMap  题解  705. Des…
Binary Search基础 应用于已排序的数据查找其中特定值,是折半查找最常的应用场景.相比线性查找(Linear Search),其时间复杂度减少到O(lgn).算法基本框架如下: //704. Binary Search int search(vector<int>& nums, int target) { //nums为已排序数组 ,j=nums.size()-; while(i<=j){ ; if(nums[mid]==target) return mid; ; ;…
第一部分 水塘抽样 reservoir sampling 水塘抽样的原理:(应该开一篇新文章)pssss [382]Linked List Random Node (2018年11月15日,新算法) 给了一个单链表,要求等概率的返回单链表的一个结点的值. 解法:我直接随便解了,能过,但是肯定不是面试官想要的XD.先遍历一遍链表求链表长度,然后随机一个出这次是第 x 个结点,(x = rand() % length),然后再遍历到这个结点返回值. /** * Definition for sing…
随机密码生成 描述 补充编程模板中代码,完成如下功能:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬ 以整数17为随机数种子,获取用户输入整数N为长度,产生3个长度为N位的密码,密码的每位是一个数字.每个密码单独一行输出.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬…
[题解]CF24D Broken Robots http://codeforces.com/problemset/problem/24/D 解1(不会写,口胡的) 获得一个比较显然的转移式子 \(dp(i,j)\)代表在\((i,j)\)坐标需要期望的走的次数 \[ dp(i,j)=0.25(1+dp(i-1,j)+dp(i,j-1)+dp(i,j+1)) \] 然而我们可以发现这个式子不满足无后效性..也找不到一种合适的顺序DP. 我们发现可以高斯消元,但是\(O(n^4)\)的复杂度我们接受…