C - Game with Chips.Educational Codeforces Round 84 (Rated for Div. 2)

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;
}

猜你喜欢

转载自www.cnblogs.com/LH2000/p/12558113.html