【题解】APIO2013机器人】的更多相关文章

3205: [Apio2013]机器人 Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 953  Solved: 227[Submit][Status][Discuss] Description VRI(Voltron机器人学会)的工程师建造了 n个机器人.任意两个兼容的机器人站在同一个格子时可以合并为一个复合机器人.我们把机器人用 1至 n编号(n ≤ 9).如果两个机器人的编号是连续的,那么它们是兼容的,可以合并成一个复合机器人.最初这   n…
3205: [Apio2013]机器人 Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 977  Solved: 230[Submit][Status][Discuss] Description VRI(Voltron机器人学会)的工程师建造了 n个机器人.任意两个兼容的机器人站在同一个格子时可以合并为一个复合机器人.我们把机器人用 1至 n编号(n ≤ 9).如果两个机器人的编号是连续的,那么它们是兼容的,可以合并成一个复合机器人.最初这   n…
其实这题前前后后的思考时间加起来应该有两天之久了,dp状态,转移方式等等都还是比较好想,然而左看右看觉得spfa复杂度未免太爆炸……然后选择看了一篇题解,发现在多重优化之下,其实是可以过的…… 首先建立状态,这个应该比较明显:\(f[l][r][x][y]\) 代表合并完区间 \(l\) ~\(r\) 之后,机器人停在 \(x,y\) 处所需要的最少移动次数.转移状态即为: \(f[l][r][x][y] = f[l][k][x][y] + f[k + 1][r][x][y] \left ( l…
题目描述 VRI(Voltron 机器人学会)的工程师建造了 n 个机器人.任意两个兼容的机 器人站在同一个格子时可以合并为一个复合机器人. 我们把机器人用 1 至 n 编号(n ≤ 9).如果两个机器人的编号是连续的,那 么它们是兼容的,可以合并成一个复合机器人.最初这 n 个机器人各自都只有唯 一的编号.而一个由两个或以上的机器人合并构成的复合机器人拥有两个编号, 分别是构成它的所有机器人中最小和最大的编号. 例如,2 号机器人只可以与 1 号或 3 号机器人合并.若 2 号机器人与 3 号…
http://www.lydsy.com/JudgeOnline/problem.php?id=3205 历时一天,老子终于把它A了 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 因为不懂spfa的优化 以及 数组越界  TAT ┭┮﹏┭┮ 牢骚发完了,题解在下面  (⊙o⊙)… n只有9,很像状压dp dp[l][r][x][y] 表示在(x,y)位置 合成了x-y复合机器人 的最少推动次数 它的转移 存在后效性 所以上 斯坦纳树 自身的转移:dp[l][r][x][y]=min{dp[l…
题意 题目链接 分析 记 g(d,x,y) 表示从 (x,y) 出发,方向为 d 到达的点,这个可以通过记忆化搜索求出,注意如果转移成环(此时向这个方向走没有意义)要特判. 记 f(l,r,x,y) 表示 \([l,r]\) 的机器人同时位于 (x,y) 最少需要花费多少步,根据题意容易得到转移: \[\begin{cases}f(l,r,x,y)=\min\limits_{i=l}^{r-1}\{f(l,i,x,y)+f(i+1,r,x,y)\}\\f(l,r,x,y)=\min\limits…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description VRI(Voltron机器人学会)的工程师建造了 n个机器人.任意两个兼容的机器人站在同一个格子时可以合并为一个复合机器人.我们把机器人用 1至 n编号(n ≤ 9).如果两个机器人的编号是连续的,那么它们是兼容的,可以合并成一个复…
题目描述 VRI(Voltron 机器人学会)的工程师建造了 n 个机器人.任意两个兼容的机 器人站在同一个格子时可以合并为一个复合机器人. 我们把机器人用 1 至 n 编号(n ≤ 9).如果两个机器人的编号是连续的,那 么它们是兼容的,可以合并成一个复合机器人.最初这 n 个机器人各自都只有唯 一的编号.而一个由两个或以上的机器人合并构成的复合机器人拥有两个编号, 分别是构成它的所有机器人中最小和最大的编号. 例如,2 号机器人只可以与 1 号或 3 号机器人合并.若 2 号机器人与 3 号…
第一次听说斯坦纳树这种东西 先dfs预处理出来dis[i][j][k]表示格子(i,j)向k方向转移能到哪,记忆话搜索预处理,注意如果有环的话特判一下 设f[i][j][x][y]表示复合机器人i-j在(x,y)生成需要推得步数,用spfa转移,因为时间比较紧所以优化spfa,把能转移的放进一个队列(准确的来讲是栈)按f排序,spfa转移到的放到另一个,每次取队首小的更新答案 #include<iostream> #include<cstdio> #include<cstri…
题目: 洛谷3638 分析: 卡了一天的神题--(OrzJumpmelon) 首先预处理出从点\(p\)向\(d\)方向出发最终能到达的点\(nxt[p][d]\).这个可以直接记忆化搜索解决.如果出现环说明不能向这个方向出发,设为\(-1\). struct point { int x, y; point(const int _x = 0, const int _y = 0) : x(_x), y(_y) {} }; inline bool check(const point &p) { re…