CodeForces 97D. Robot in Basement】的更多相关文章

time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard output The Professor has lost his home robot yet again. After some thinking Professor understood that he had left the robot in the basement. The ba…
题目链接 (ozr attack) 考虑怎么暴力,就是先在所有非障碍格子上全放上机器人,然后枚举每一步,枚举每个机器人移动这一步,直到所有机器人都在出口位置.复杂度是\(O(nmk)\)的. 怎么优化呢,注意到每次移动都是所有机器人一起向同一个方向移动,而我们只关心每个位置上是否有机器人. 可以用bitset优化每次移动.把格子编好号后,向上移动就是整体右移\(m\)位,向左走就是整体右移一位... 还有个问题是,机器人不能往障碍上走.我们可以先把能走的机器人走过去,然后把会撞墙的机器人补回来.…
A. Robot Sequence time limit per test:2 seconds memory limit per test:256 megabytes input:standard input output:standard output Calvin the robot lies in an infinite rectangular grid. Calvin's source code contains a list of n commands, each either 'U'…
A. Robot Sequence time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Calvin the robot lies in an infinite rectangular grid. Calvin's source code contains a list of n commands, each either 'U'…
While Farmer John rebuilds his farm in an unfamiliar portion of Bovinia, Bessie is out trying some alternative jobs. In her new gig as a reporter, Bessie needs to know about programming competition results as quickly as possible. When she covers the…
题目链接: http://codeforces.com/problemset/problem/645/D 题意: 给定n个机器人的m个能力大小关系,问你至少要前几个大小关系就可以得到所有机器人的能力顺序. 分析: 拓扑+二分. 注意最终的顺序不能缺点,先把度为0的点入队,如果度为0的点的个数大于1,则说明至少有两个点的能力大小不确定,无法继续. 代码: #include<bits/stdc++.h> using namespace std; const int maxn = 100005; v…
Pushok the dog has been chasing Imp for a few hours already. Fortunately, Imp knows that Pushok is afraid of a robot vacuum cleaner. While moving, the robot generates a string t consisting of letters 's' and 'h', that produces a lot of noise. We defi…
二分,拓扑排序. 二分答案,然后进行拓扑排序检查,若某次发现存在两个或者两个以上入度为$0$的节点,那么不可行. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<ma…
题意 有一个 \(N\) 个点, \(M\) 条边的有向图, 初始有一个机器人在 \(1\) 号点. 每个时刻, 这个机器人会随机选择一条从该点出发地边并通过.当机器人到达点 \(N\) 时, 它就会自动关闭. 然而这个机器人如果在某个时刻到达自己曾经到过的点的话, 它就会爆炸. 因此, 你决定对机器人实施一些命令, 让它在某些时候按照规定的边走, 而非随机选择. 问对机器人最少使用多少条命令可以让它安全到达点 \(N\) . \(N, M \le 10^6\) 题解 十分巧妙的一道好题- 首先…
题意 题目链接 Sol 接下来我的实现方式和论文里不太一样 然后用bitset优化,上下走分别对应着右移/左移m位,左右走对应着右移/左移1位 我们可以直接预处理出能走的格子和不能走的格子,每次走的时候先全都走过去,再把撞到墙上的补回来即可 #include<bits/stdc++.h> #define u32 unsigned int using namespace std; const int MAXN = 1e5 + 10, SS = 150 * 150 + 150; inline in…