http://codeforces.com/contest/1327/problem/C
题意
给你一个图和一堆点,然后问你这一堆点和一堆目标点怎么才能到达这些目标点至少一次。
做法
其实题目已经给你提示了,上面说移动次数不大于2nm。
其实在2nm内就能把图上所有位置遍历一遍。
简单来说就是不管你脑洞开的有多大,没有用。该暴力还是得暴力。
先把最右上角的点移动到左下角,再按照s型移动到原始位置
就能保证所有点都经历过这个图上别的所有点了。
代码
#include <iostream> using namespace std; int main() { ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m, k; cin >> n >> m >> k; for (int i = 0; i < k; i++) { int x, y; cin >> x >> y; } for (int i = 0; i < k; i++) { int x, y; cin >> x >> y; } string res = ""; for (int i = 0; i < m - 1; i++) res += "L"; for (int i = 0; i < n - 1; i++) res += "U"; for (int i = 0; i < n; i++) { if (i % 2 == 0) { for (int j = 0; j < m - 1; j++) { res += "R"; } } else { for (int j = 0; j < m - 1; j++) { res += "L"; } } if (i != n - 1) res += "D"; } cout << res.size() << endl; cout << res << endl; return 0; }
原文地址:https://www.cnblogs.com/LH2000/p/12558113.html
时间: 2024-11-06 07:31:44